index.php: 13 Uncaught SyntaxError: Неожиданный токен: сообщение об ошибке в Ci - PullRequest
0 голосов
/ 27 декабря 2011

В моем коде Javascript после строки ниже:

url: ...... / Misc-2 / Ci-TodoList / index.php / home / jsonAddData,

Я получаю следующую ошибку:

index.php: 13 Uncaught SyntaxError: Неожиданный токен:

<script type="text/javascript" language="javascript">
$(document).ready(function() {
    $('#add').bind('keypress', function(e) {
        if(e.keyCode == 13){
            $.ajax({
            type: "POST",
            dataType: "JSON",
            url: <?php echo site_url("home/jsonAddData"); ?>,
            data: dataString,
            json: {title_posted: true},
            success: function(data){
            if(data.title_posted == true) { // true means data was successfully posted.
                $("#success").append("Success");
            } else if(data.title_posted == false) { // false means data failed to post.
                $("#success").append('Failure');
            }
          }
       });
    }
});

      }
    });
});
</script>

Я довольно увереннонесколько приемов отладки, которые index.php: 13 ссылается на мой PHP-скрипт.Одна из вещей, которую он делал, говорила, что когда я загружал помощника по URL, он говорил, что это было причиной ошибки.Затем я автоматически загрузил помощника url, и теперь он говорит, что строка 13 вызывает ошибку, но строка 13 - это только запрос выбора mysql, как вы можете определить ниже:

<?php
class home extends CI_Controller {
    function __construct() {
        parent::__construct();
    }
    function index() {
        $data = array();
        $data['lists'] = $this->displayList();
        $this->load->view('home', $data);
    }
    function displayList() {
        $str = '';
        $query = $this->db->query("SELECT * FROM data");
        foreach ($query->result() as $row) {
            $b = '<input name="completed" type="checkbox" />';
            $a = $row->title . "<br>";
            $str .= $b.$a;
        }
        return $str;
    }
    function jsonAddData() {
        if($this->input->is_ajax_request()) {
        header('Content-type:application/json');
        $title = $this->input->post('title');
        $query = $this->db->query("INSERT INTO data (title) VALUES ('$title')");
        if($query) return json_encode(array('title_posted' => true));
        else return json_encode(array('title_posted' => false));
        }
    }
}
?>

Есть идеи, почему это происходит?

1 Ответ

3 голосов
/ 27 декабря 2011

Вы получаете ошибку JS, поэтому синтаксис PHP не является виновником.:)

Обернуть <?php echo site_url("home/jsonAddData"); ?> в двойных кавычках (я имею в виду "").Также у вас есть другие синтаксические ошибки, правильный отступ может сэкономить ваше время в будущем.

Вот исправленная версия:

$(document).ready(function() {
    $('#add').bind('keypress', function(e) {
        if(e.keyCode == 13){
            $.ajax({
                type: "POST",
                dataType: "JSON",
                url: "<?php echo site_url("home/jsonAddData"); ?>",
                data: dataString,
                json: {title_posted: true},
                success: function(data){
                    if(data.title_posted == true) { // true means data was successfully posted.
                        $("#success").append("Success");
                    } else if(data.title_posted == false) { // false means data failed to post.
                        $("#success").append('Failure');
                    }
               }
          });
       }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...