视图中有一个Ajax代码。它将选定的索引(从选择框中)发送到控制器。控制器将其转发给模型并获得正确的结果。我可以在Firebug中看到,当我执行print_r时,控制器在其数组中有正确的值,因此只需将其发送回视图进行打印。但它在"变量未定义"处就失败了。我可以通过
这样的操作来绕过这个问题如果(空($变量)){
则不打印,否则打印如果这样做,它确实会到达Ajax代码的Success部分,但我希望它位于View html页面上。我怎样才能成功地完成这最后一部分呢?下面是完整的代码:
视图:
<script>
$(document).ready(function() {
$("#target").change(function() {
// alert($('#target option:selected').val());
$.ajax({
type: 'POST',
url: '<?php echo route("showhospitals");?>',
data: {'dataString': $('#target option:selected').val()},
cache: false,
success: function(data)
{
// alert(data);// CAN I USE THIS SUCCESS STUFF TO WRITE
// TO THE HTML BLADE VIE PAGE INSTEAD OF ON AN ALERT?
}
});
});
});
</script>
控制器public function postespecialidades(){
if (Request::ajax())
{
/*WE GET THE DATA FROM THE SELECT LIST VIA AJAX*/
$data['input'] = Input::get('dataString');
$dato = $data['input'];
echo "the index number I got is: . $dato";
/*WE SEND THAT DATA TO THE MODEL*/
$hospital['input'] = with(new treatment)->sendData($dato);
print_r($hospital['input']); //I CAN SEE THE CORRECT RESULT IN FIREBUG RESPONSE BUT CANT PASS IT TO THE VIEW
return View::make('especialidades.especialidades')->with('hospital', $hospital);
return $hospital['input'];
}
else{
echo "THE JQUERY IS NOT GETTING TO TALK TO ME";
}
}
}
所以,我想把结果打印在View页面上,而不是在alert窗口上。
人员信息将在这里列出。
问题原因:
当页面加载时,在选择任何内容之前,页面崩溃,因为它试图打印一个没有机会从控制器获得值的变量。这就是问题所在。
使用其中一个。
解决方案1
双引号引用你的PHP路由
< script > $(document).ready(function() {
$("#target").change(function() {
// alert($('#target option:selected').val());
formData = {
dataString: $('#target option:selected').val();
}
$.ajax({
type: 'POST',
url: "<?php echo route("showhospitals");?>",
data: formData,
cache: false,
success: function(data) {
// alert(data);// CAN I USE THIS SUCCESS STUFF TO WRITE
// TO THE HTML BLADE VIE PAGE INSTEAD OF ON AN ALERT?
}
});
});
}); < /script>
解决方案2
使用URL代替PHP路由
< script > $(document).ready(function() {
$("#target").change(function() {
// alert($('#target option:selected').val());
formData = {
dataString: $('#target option:selected').val();
}
$.ajax({
type: 'POST',
url: 'http://localhost/showhospitals',
data: formData,
cache: false,
success: function(data) {
// alert(data);// CAN I USE THIS SUCCESS STUFF TO WRITE
// TO THE HTML BLADE VIE PAGE INSTEAD OF ON AN ALERT?
}
});
});
}); < /script>