需要你的帮助...我的主页有3个div,#Header,#Content,#Footer。所有其他页面都在#Content div中打开。在其中一个页面中,我有一个包含两个选择列表和一个提交按钮的表单。只想单击按钮,然后将另一页返回到#Content div,显示我之前选择的值。像这样:
起源是:1
命运是:1
但是这段代码会返回以下内容......
Notice: Undefined variable: origin in ...
Notice: Undefined variable: destiny in ...
注意:如果我不打开#Content div中的页面,这是有效的
我的Html:
<form id="myform" name="myform" action="values.php" method="POST">
<select id="origin" name="origin">
<option value="0" selected>-- Select Origin --</option>
<option value="1">Portugal</option></select>
<select id="destiny" name="destiny">
<option value="0" selected>-- Select Destiny --</option>
<option value="1">Lisboa</option></select>
<input id="btSubmit" name="btSubmit" type="submit" value="search!">
</form>
我的职能:
$(document).ready(function(){
$('#btSubmit').click(function(e) {
e.preventDefault();
var url = $('#myform').attr('action');
var method = $('#myform').attr('method');
$.ajax({
type: method,
url: url,
data: $('#myform').serialize(),
success: $('#content').load(url)
});
});
});
my values.php page:
<?php
if(isset($_POST['origin']) || isset($_POST['destiny']))
{
$origin = $_POST['origin'];
$destiny = $_POST['destiny'];
}
echo 'The origin is:' . $origin . '<br>';
echo 'The destiny is:' . $destiny;
?>
答案 0 :(得分:3)
您不应该再次致电load
- 您已经基本上使用$.ajax
来调用它并收到了结果。所以你只需要在content
:
success: function (data) {
$('#content').html(data);
}
答案 1 :(得分:0)
您应该正确使用成功回调函数。接受回调方法中的响应并将其设置在div
中success: function (data) {
$('#content').html(data);
}
此外,您应该使用表单提交事件执行操作。
$('form#myform').on('submit', function (e) {
而不是
$('#btSubmit').click(function(e) {
答案 2 :(得分:0)
正如安德烈所说,你必须使用
success: function (data) {
$('#content').html(data);
}
因为调用success: $('#content').load(url)
会触发新的GET
请求。当GET请求到达PHP代码$_POST
未设置且您的变量未初始化,因此您从php获取消息:
Notice: Undefined variable: origin in