Передача JQuery JSON из контроллера Codeigniter для просмотра - PullRequest
1 голос
/ 15 января 2011

Я изо всех сил пытался заставить его работать, но не могу передать вставленные данные из контроллера в представление в CI, используя JSON.Входное значение из формы успешно вставлено в базу данных, но не может отобразить его в представлении.

Это мой файл представления ajax_view.php :

<script type="text/javascript" src="<?php echo base_url(); ?>js/jquery-1.4.2.min.js"></script>
$(document).ready(function(){

$("#submit").click(function(){

    var inp = $('#inp').val();


    $.post("ajax/ajax_input", { 'send' : inp },
       function(data){
            alert(data.input_text);

       }, "json");

});

});
</script>
   </head>
<body>
<form id="form1" method="post" action="">
 <label for="inp">Text</label>
 <input type="text" name="inp" id="inp" />
 <label for="submit"></label>
 <input type="submit" name="submit" id="submit" value="Submit" />

И это ajax_input метод контроллера ajax.php :

<?php
// Initializing controller .....
// .............................


 //ajax method
function ajax_input(){
    $var_1 = trim($this->input->post('send'));
    $array = array('input_text' => $var_1);

    echo json_encode($array);
    $this->db->insert('ajax',$array);
}

Попытка отладить его с помощью Firebug, ондает мне, что data.input_text пусто.

Что я делаю не так?

РЕДАКТИРОВАТЬ: я использую XAMPP на Win, так возможно ли, что конфигурация jsonэто проблема?

Ответы [ 3 ]

2 голосов
/ 16 января 2011

сам код должен работать, вот несколько советов:

  1. Я не знаю, является ли это опечаткой или нет, но ваш JS не открывается должным образом (отсутствует <script type="text/javascript">)
  2. используйте событие submit() вместо события click() на входе отправки:

    <script type="text/javascript">
        $(document).ready(function(){
            $("#form1").submit(function(){
                var inp = $('#inp').val();
                $.post("ajax/ajax_input/", { 'send' : inp },
                function(data){
                    console.log(data.input_text);
                }, 'json');
                return false;
            });
        });
    </script>
    
  3. переключите две строки в вашем контроллере и верните insert() в переменную на всякий случай:

    if($this->db->insert('ajax',$array))
        echo json_encode($array);
    else
        //echo json_encode(array("input_text"=>"Input was not inserted correctly!"));
        echo json_encode(array("input_text"=>$this->db->last_query())); // for testing purposes ONLY!! don't use in live website!
    
0 голосов
/ 15 января 2011
$array = array('input_tekst' => $var_1); //why tekst?

Изменить текст на текст.

0 голосов
/ 15 января 2011

На вашей странице ajax_input.php есть опечатка.Изменение: $ array = array (' input_tekst ' => $ var_1);до

$array = array('input_text' => $var_1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...