laravel 4的即时消息是几天前开始的.我的问题很简单,我有一个组合框,客户端或用户可以更改并提供“部分”视图.
这是我的第一观点. OnChange:
将通过javascript呈现该简单消息
我的问题是,如果我手动放置值,它将仅显示部分视图:
这是我在控制器中的功能
public function getTeste1() {
$id = Input::get('value');
if($id=="")
{
$this->layout->content = View::make('home.user');
}
else
{
$this->layout->content = View::make('home.user2')->with('ides',$id);
}
}
这是我的JavaScript函数:
function showCustomer(str)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url="";
url="?value=" str;
//url=url "&sid=" Math.random();
// alert(url);
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(true);
}
这是我的看法:
<h1>Home</h1>
<p>Welcome to your Home. You rock!</p>
<form>
<select name="users" onchange="showCustomer(this.value)">
<option value="0">Select a person:</option>
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Glenn Quagmire</option>
<option value="4">Joseph Swanson</option>
</select>
</form>
<div id="txtHint"></div>
这是我的部分观点:
@if($ides!=0)
<div id="txtHint"> <b>Person info will be listed here -> {{ $ides }} </b></div>
@endif
我知道为什么会有这个问题,如果你们知道这将非常有帮助,或者其他可以解决的问题,我不知道如何避免.
谢谢,
贡萨洛·莫拉(GonçaloMoura)
编辑: 如果我使用您的解决方案,它将显示如下:
StateChanged函数:
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
// alert(document.getElementById("txtHint").innerHTML);
}
}
jQuery函数:
<script>
$(document).ready(function() {
$("#users").change(function() {
$.get('http://localhost/LoginProject/public/home/teste1?value=' $(this).val(), function(data) {
$("#txtHint").html(data);
});
});
});
</script>
解决方法: 我将为您提供更简单的总体设计方法.
您无需触摸控制器中的任何东西.
无论有没有ajax请求,都返回相同的视图.
只需对布局进行一些更改.
@if(!Request::ajax())
<html>
....
.... //the whole layout
</html>
@else
{{$content}}
@endif
简单的逻辑.
如果请求不是ajax,则返回带有整个模板的视图.
如果请求是ajax,则仅返回视图. 来源:https://www./content-1-573001.html
|