我的主页上有以下代码
<html>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
function loadQueryResults() {
$('#DisplayDiv').load('toaction.php');
return false;
}
</script>
<body>
<div id="page">
<form id="QueryForm" method="post">
<div id="SubmitDiv" style="background-color:black;">
<input type = "text" name="song"></input>
<button type="submit" form="QueryForm" onclick="return loadQueryResults();">Submit Query</button>
</div>
</form>
<div id="DisplayDiv" style="background-color:red;">
</div>
</div>
</body>
</html>
以及我的toaction.php中的以下内容
<html>
<meta charset="utf-8">
<body>
<div id="page" style="background-color:yellow;">
<?php
if( isset($_POST['song']) )
{
$song = $_POST['song'];
echo $song;
}
else
{
echo "form didn't submit";
}
?>
</div>
</body>
</html>
其思想是在不重新加载页面的情况下动态刷新div。这是可行的,但是变量"song“没有被传递-因此div用"form not submit”更新。
提前谢谢你,
发布于 2014-09-07 01:01:19
您没有在$.load()
调用中发送任何参数。另外,$.load()
发送一个GET
请求,而不是POST
。试试这个:
function loadQueryResults() {
$.post('toaction.php', $("#QueryForm").serialize(), function(response) {
$('#DisplayDiv').html(response);
});
return false;
}
.serialize()
将从给定表单中的所有字段构造一个参数列表,类似于普通表单提交(一个不同之处是提交按钮不会包含在参数中)。
https://stackoverflow.com/questions/25706157
复制相似问题