Php Codeigniter-Ajax从控制器/模型返回数据问题
这是我第一次尝试使用带有搜索输入框的ajax。我的ajax工作正常,但是我不知道如何正确地从模型和控制器返回搜索数据 控制器:“YouhaveFoundTwiiter ID”工作正常,但是$num没有通过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
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。我可以通过控制器将数据传递给视图,但我从未将“数据”转换为控制器中的变量。这是怎么做到的?谢谢你,这很有帮助。我很感激