我刚开始学习 Laravel 4,几天前才开始。我的问题很简单,我有一个下拉框,客户或用户更改它后会呈现一个“部分”视图。
这是我的第一个视图。OnChange 事件:
它将通过 JavaScript 渲染出这个简单的消息。
我的问题是,如果我手动输入值,它只会显示部分视图:
这是控制器中的函数。
这是我的视图:
这是我的部分视图:
我知道我有这个问题的原因,但是如果你们知道如何避免它或者其他解决方法的话,将会非常有帮助。
谢谢,
Gonçalo Moura
编辑: 如果我使用你的解决方案,它将显示如下: StateChanged函数:
这是我的第一个视图。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çalo Moura
编辑: 如果我使用你的解决方案,它将显示如下: 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>
stateChanged
函数吗? - Amit Garg