我有2个div用于菜单链接,另一个用于内容。我想要做的是单击菜单链接和该菜单链接的页面以加载内容div。
我已经完成了这项工作。问题是div中的页面包含一个表单,该表单没有提供成功消息,数据库也没有更新。
它只是刷新到主要内容页面或打开当前窗口,就像内容页面一样,或者打开一个带有内容页面的新窗口。
有什么解决方案吗?
left div = menu
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".menuLink").click(function(){
$.ajax({
type: "POST",
url: $(this).attr('href'),
data: "",
cache: false,
success: function(html){ $("#Middle").html(html); }
});
});
});
</script>
</head>
<body>
<div id="head">
<div class="lefttop" align="center">
<div class="lefttopleft">
<a class="menuLink" href="Test.php" onclick="return false;"><img src="Images/logo.jpg" width="94" height="21" /></div>
当点击该链接时,页面加载到内容div中,所以现在该页面显示内容div中的表单我遇到的麻烦就是填写表单点击提交并更新数据库它只是刷新到主要内容div或只是页面加载文件单击或在新窗口中执行。
session_start();
include_once("connect.php");
include_once("functions.php");
if($_POST['WallSubmit'] && $_POST['Wall']){
$wall = makesafe($_POST['Wall']);
mysql_query("INSERT INTO `Wall` (`ID`, `Username`, `MessageBy`, `Date`, `Message`) VALUES ('', '', '$username', '" . time() . "', '$wall')");
}
?>
<body>
<form method="post">
<table class="default" style="width: 80%" align="center">
<tr>
<td class="subheader">Wall</td>
</tr>
<tr>
<td class="content">Post a comment.<br /><textarea name='Wall' id='Wall' style='width: 99%; height: 110px;'></textarea><br /><br/><center><input type='submit' value='Post' name='WallSubmit' /></center><br /><hr><br />Latest Comments.</td>
</tr>
</td>
</table>
</form>
</body>
</html>
有没有一个简单的方法,我到处寻找?
答案 0 :(得分:1)
首先,尝试在表单标记上设置操作。该操作定义了将向其提交表单的页面。
<form method="post" action="Test.php">
这样表单应该提交给Test.php。如果它仍然没有执行任何操作,请尝试在页面顶部打印带var_dump($POST);
的变量转储(manual)。然后,您将看到post属性的所有设置值。从那以后,应该很容易找到错误。
修改强>
在您发表评论后,我意识到您正在尝试使用AJAX发送表单并重新加载内容div。你必须分两步完成。首先,将表单的数据发送到Test.php,然后重新加载内容div。如果偶然发现这个问题:jQuery AJAX submit form。这可以帮助您提交表单。如果您想使用返回值,可以尝试这样的事情:
$.post("Test.php", $("#form").serialize(),
function(data) {
alert("Returned data: " + data);
});