2016-05-28 3 views
-1

Я новичок в программировании кодаи, и у меня возникают проблемы со ссылкой на другой контроллер.Codeigniter - Ошибка анализа: синтаксическая ошибка, неожиданный '-', expecting '{'

У меня есть домашняя страница (home.php), из которой я должен перейти на другую страницу.

home.php

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> 
<!-- This is the default home page --> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Animania Manager</title> 
    <link rel="stylesheet" href="application/styles/foundation.css"> 
    <link rel="stylesheet" href="application/styles/app.css"> 
    <link rel="stylesheet" href="https://cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css" /> 
    <link rel="stylesheet" href="application/styles/reset.css"> <!-- CSS reset --> 
    <link rel="stylesheet" href="application/styles/style.css"> <!-- Gem style --> 
    <script src="application/js/modernizr.js"></script> <!-- Modernizr --> 
    <script src="http://code.jquery.com/jquery-1.12.0.min.js"></script> 
    <!--script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script--> 
    <script src="https://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script> 
    <script> 
     $(document).ready(function() { 
     $('#offerte').DataTable(); 
     }); 

     $(document).ready(function() { 
     $('#curriculum').DataTable(); 
     }); 
    </script> 
    <script>   
     $(document).ready(function() { 
     // Setup - add a text input to each footer cell 
     $('#offerte tfoot th').each(function() { 
      var title = $(this).text(); 
      $(this).html('<input type="text" placeholder="Cerca '+title+'" /> '); 
     }); 

     // DataTable 
     var table = $('#offerte').DataTable(); 

     // Apply the search 
     table.columns().every(function() { 
      var that = this; 

      $('input', this.footer()).on('keyup change', function() { 
       if (that.search() !== this.value) { 
        that 
         .search(this.value) 
         .draw(); 
       } 
      }); 
     }); 
    }); 

    $(document).ready(function() { 
     // Setup - add a text input to each footer cell 
     $('#curriculum tfoot th').each(function() { 
      var title = $(this).text(); 
      $(this).html('<input type="text" placeholder="Cerca '+title+'" /> '); 
     }); 

     // DataTable 
     var table = $('#curriculum').DataTable(); 

     // Apply the search 
     table.columns().every(function() { 
      var that = this; 

      $('input', this.footer()).on('keyup change', function() { 
       if (that.search() !== this.value) { 
        that 
         .search(this.value) 
         .draw(); 
       } 
      }); 
     }); 
    }); 
    </script> 

</head> 
<body> 
    <div class="container row"> 
     <header class="testata" role="banner"> 
      <nav class="menu"> 
       <ul> 
        <li>Inserimento offerta</li> 
        <li>Inserimento CV</li> 
        <li></li> 
       </ul> 
      </nav> 
      <nav class="main-nav"> 
       <ul> 
        <!-- inser more links here --> 
        <li><a class="cd-signin" href="#0">Login</a></li> 
        <li><a class="cd-signup" href="#0">Registrazione</a></li> 
       </ul> 
      </nav> 

     </header> 
    </div> 


    <div class="cd-user-modal"> <!-- this is the entire modal form, including the background --> 
     <div class="cd-user-modal-container"> <!-- this is the container wrapper --> 
      <ul class="cd-switcher"> 
       <li><a href="#0">Login</a></li> 
       <li><a href="#0">Nuovo account</a></li> 
      </ul> 

      <div id="cd-login" action="validation.php" method=GET> <!-- log in form --> 
       <form class="cd-form"> 
        <p class="fieldset"> 
         <label class="image-replace cd-email" for="signin-email">E-mail</label> 
         <input class="full-width has-padding has-border" id="signin-email" type="email" placeholder="E-mail" name="email"> 
         <span class="cd-error-message">Errore</span> 
        </p> 

        <p class="fieldset"> 
         <label class="image-replace cd-password" for="signin-password">Password</label> 
         <input class="full-width has-padding has-border" id="signin-password" type="text" placeholder="Password" name="password"> 
         <a href="#0" class="hide-password">Nascondi</a> 
         <span class="cd-error-message">Errore!</span> 
        </p> 

        <p class="fieldset"> 
         <input type="checkbox" id="remember-me" checked> 
         <label for="remember-me">Ricordami</label> 
        </p> 

        <p class="fieldset"> 
         <input class="full-width" type="submit" value="Login"> 
        </p> 
       </form> 

       <p class="cd-form-bottom-message"><a href="#0">Hai dimenticato la password?</a></p> 
       <!-- <a href="#0" class="cd-close-form">Close</a> --> 
      </div> <!-- cd-login --> 

      <div id="cd-signup"> <!-- sign up form --> 
       <form class="cd-form"> 
        <p class="fieldset"> 
         <label class="image-replace cd-username" for="signup-username">Username</label> 
         <input class="full-width has-padding has-border" id="signup-username" type="text" placeholder="Username"> 
         <span class="cd-error-message">Errore!</span> 
        </p> 

        <p class="fieldset"> 
         <label class="image-replace cd-email" for="signup-email">E-mail</label> 
         <input class="full-width has-padding has-border" id="signup-email" type="email" placeholder="E-mail"> 
         <span class="cd-error-message">Errore!</span> 
        </p> 

        <p class="fieldset"> 
         <label class="image-replace cd-password" for="signup-password">Password</label> 
         <input class="full-width has-padding has-border" id="signup-password" type="text" placeholder="Password"> 
         <a href="#0" class="hide-password">Nascondi</a> 
         <span class="cd-error-message">Errore!</span> 
        </p> 

        <p class="fieldset"> 
         <input type="checkbox" id="accept-terms"> 
         <label for="accept-terms">Accetto i <a href="#0">Termini</a></label> 
        </p> 

        <p class="fieldset"> 
         <input class="full-width has-padding" type="submit" value="Crea account"> 
        </p> 
       </form> 

       <!-- <a href="#0" class="cd-close-form">Close</a> --> 
      </div> <!-- cd-signup --> 

      <div id="cd-reset-password"> <!-- reset password form --> 
       <p class="cd-form-message">Hai perso la tua password? Inserisci il tuo indirizzo email. Riceverai un link per la creazione di una nuova password!</p> 

       <form class="cd-form"> 
        <p class="fieldset"> 
         <label class="image-replace cd-email" for="reset-email">E-mail</label> 
         <input class="full-width has-padding has-border" id="reset-email" type="email" placeholder="E-mail"> 
         <span class="cd-error-message">Errore!</span> 
        </p> 

        <p class="fieldset"> 
         <input class="full-width has-padding" type="submit" value="Reset password"> 
        </p> 
       </form> 

       <p class="cd-form-bottom-message"><a href="#0">Torna al log-in</a></p> 
      </div> <!-- cd-reset-password --> 
      <a href="#0" class="cd-close-form">Chiudi</a> 
     </div> <!-- cd-user-modal-container --> 
    </div> <!-- cd-user-modal --> 
      <?php 
      if ($offers !== FALSE) { 
      print('<div> 
    <table class="display" id="offerte" cellspacing="0" width="100%"> 
     <thead> 
      <tr> 
       <th>Titolo</th> 
       <th>Descrizione</th> 
       <th>Candidati</th> 
      </tr> 
     </thead> 
     <tfoot> 
      <tr> 
       <th>Titolo</th> 
       <th>Descrizione</th> 
       <th>Candidati</th> 
      </tr> 
     </tfoot><tbody>'); 
      //for($i = 0; $i < count($offers); $i++){ 
       foreach ($offers as $offer){ 
        //echo base_url(); 
        //$url=base_url('single-offerta')."?idannunci=".$offer->getId(); 

        print("<tr>"); 
        print("<td>".$offer->getTitolo()."</td>"); 
        print("<td>".$offer->getDescrizione()."</td>"); 
        //print('<td><a href="'.site_url('Singoff2').'">'.$offer->getPartecipanti().'</a></td>'); 
        print('<td>'.anchor('Singoff2', 'Link Text').'</td>'); 
        print("</tr>"); 
       } 
       print("</tbody></table></div>"); 
      } 
      else 
      { 
       echo 'nessuna offerta'; 
      } ?> 

      <!--script src="js/vendor/jquery.js"></script--> 
      <script src="application/js/vendor/what-input.js"></script> 
      <script src="application/js/vendor/foundation.js"></script> 
      <script src="application/js/app.js"></script> 
      <script src="application/js/main.js"></script> <!-- Gem jQuery --> 
    </div> 
</body> 
</html> 

Singoff2.php (контроллер на другую страницу)

<?php 
if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Single-offerta extends CI_Controller { 

    public function index() 
    { 
     $this->load->library("SingOffFactory"); 
     //Create a data array so we can pass information to the view 
     $data = array(
      "dettagli" => $this->singofffactory->getDettagli() 
     ); 
     //Load the view and pass the data to it 
     $this->load->view("Singoff2", $data); 
    } 
} 

Если я попробовать мою ссылку я имею ошибку ниже:

Parse error: syntax error, unexpected '-', expecting '{' in D:\inetpub\webs\animaniait\manager\application\controllers\Singoff2.php on line 4 
A PHP Error was encountered 

Severity: Parsing Error 

Message: syntax error, unexpected '-', expecting '{' 

Filename: controllers/Singoff2.php 

Line Number: 4 

Backtrace: 

сейчас если я пытаюсь изменить имя класса в моем файле Singoff.php, у меня ошибка 404.

Пожалуйста, помогите мне ..... я схожу с ума!

+0

'Single-offerta' не является допустимым именем класса. http://programmers.stackexchange.com/questions/149303/naming-classes-methods-functions-and-variables –

+0

Понятно, что вам нужно внимательно изучить документацию CodeIgniter от начала до конца и не забудьте следовать прилагаемому учебнику , – Sparky

ответ

0

переименуйте название своего класса Single-offerta в нечто другое. не используйте - в вашем классе

+0

Если я пытаюсь изменить имя класса, у меня есть ошибка 404 –

2

Просто прочитайте об ошибке. Это строка 4 и недопустимый символ - - дефис. Дефиши или дефис НЕ допускаются в именах классов. Имя класса должно соответствовать имени файла, то есть эти два должны быть точно такими же. Теплый совет - прочитать полную документацию по КИ. Обратите внимание на file naming и class and method naming. Кроме того, было бы полезно прочитать PHP OOP basics.

A valid class name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: ^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$.

В вашем примере файл должен быть Single_offerta.php и линии 4 должны быть соответствующим образом

class Single_offerta extends CI_Controller { 

Если вы хотите получить доступ к URL с example.com/single-offerta наиболее эффективным способом было бы перевести Uri черточки в APPPATH.'config/routes.php'file установить его до TRUE:

$route['translate_uri_dashes'] = TRUE; 
+0

Я уже пробовал это :(но ничего –

+0

Как вы имеете в виду? У вас не должно быть такой же ошибки. – Tpojka

+0

Я попытался изменить имя класса в Single_offerta и изменить $ route ['translate_uri_dash'] в TRUE ... ничего не происходит –

Смежные вопросы