Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter-Ajax从控制器/模型返回数据问题_Php_Jquery_Codeigniter_Search - Fatal编程技术网

Php Codeigniter-Ajax从控制器/模型返回数据问题

Php Codeigniter-Ajax从控制器/模型返回数据问题,php,jquery,codeigniter,search,Php,Jquery,Codeigniter,Search,这是我第一次尝试使用带有搜索输入框的ajax。我的ajax工作正常,但是我不知道如何正确地从模型和控制器返回搜索数据 控制器:“YouhaveFoundTwiiter ID”工作正常,但是$num没有通过 function search() { $this->form_validation->set_rules('twit', 'Search', 'required|trim|min_length[2]|max_length[25]');//check

这是我第一次尝试使用带有搜索输入框的ajax。我的ajax工作正常,但是我不知道如何正确地从模型和控制器返回搜索数据

控制器:“YouhaveFoundTwiiter ID”工作正常,但是$num没有通过

function search()
{         
    $this->form_validation->set_rules('twit', 'Search', 'required|trim|min_length[2]|max_length[25]');//check
    if ($this->form_validation->run() == TRUE) {
    $this->load->model('twit_model');
    $query = $this->twit_model->entity();
    if(!$query = $this->twit_model->entity())
    {  
    echo "The name does not exist";
        }else{     
        echo "<h3>You found $num Twitter ID's</h3>";    //this shows up in the view           
        echo "<li class=\"list1\">$twit_id - $name</li> ";   //the "-" shows up in the view        
        }               
    }
}
控制器和模型的基础工作得很好,我意识到在这两者结束时,我没有正确地将数据从模型传递到控制器

jquery

$(function() {
$('#display').hide();   
$('#name_error').hide(); 
    $('#submit').click(function() { // could be #form .submit

      var twit = $("#twitter_search").val();
        if (twit == "") {
          $("label#name_error").show();
          $("input#twitter_search").focus();
          return false;
        }  
var datastring = $('#form').serialize();         
$.ajax({
   url: "<?php echo site_url('twitter/search'); ?>",
   type: "POST",
   data: datastring, 
    success: function(msg) {
        $('#display').html(msg).show(3000);            
        }
    }); 
    return false;       

});
});
$(函数(){
$('#display').hide();
$('#name_error').hide();
$('#submit')。单击(函数(){//可以是#form.submit
var twit=$(“#twitter_搜索”).val();
如果(twit==“”){
$(“label#name_error”).show();
$(“输入#推特搜索”).focus();
返回false;
}  
var datastring=$('#form').serialize();
$.ajax({
url:“”,
类型:“POST”,
数据:datastring,
成功:功能(msg){
$('#display').html(msg).show(3000);
}
}); 
返回false;
});
});
jquery工作正常,警报/firebug告诉我正在将数据传递给控制器。我只是不知道如何将变量数据传递到模型->控制器->视图

谢谢你的阅读

$data - array(
     $query,
     $num
     );
你在这里打错字了吗?它应该是$data=array吗?
此外,搜索函数中的变量$num既没有定义也没有返回。

看起来您使用的变量超出了范围

在您的模型中,您应该更改以下内容:

$data - array(
     $query,
     $num
     );
对这样的事情:

$data = array('query' => $query, 'count' => $num, 'twit_id'=>$twit);
echo "<h3>You found ".$query['count']." Twitter ID's</h3>"; 
echo "<li class=\"list1\">".$query['twit_id']." - ".$query['query']."</li> ";
然后在控制器中更改以下内容:

echo "<h3>You found $num Twitter ID's</h3>";           
echo "<li class=\"list1\">$twit_id - $name</li> ";  
echo“您找到了$num Twitter ID”;
echo“
  • $twit\u id-$name
  • ”;
    变成这样:

    $data = array('query' => $query, 'count' => $num, 'twit_id'=>$twit);
    
    echo "<h3>You found ".$query['count']." Twitter ID's</h3>"; 
    echo "<li class=\"list1\">".$query['twit_id']." - ".$query['query']."</li> ";
    
    echo“You found.”$query['count'].“Twitter ID's”;
    echo“
  • ”$query['twit\u id']。“-”$query['query']。
  • ”;
    是的,这是我的错别字$num是$num=$query->num_rows();在模型中。但是仍然存在同样的问题,仅在模型中将$query&$num转换为variablesyeah,$num,但不会返回到搜索函数。因此,您不能直接在搜索函数中使用$num。我可以通过控制器将数据传递给视图,但我从未将“数据”转换为控制器中的变量。这是怎么做到的?谢谢你,这很有帮助。我很感激