当我使用附加代码提交表单时,屏幕自动刷新而不是显示在div中的消息,它将完成的表单保存在浏览器缓存中。我显然在某个地方弄错了,如果有人能指出我的错误,我将不胜感激。我已经发布了相关的代码,但如果有什么我错过了,请告诉我。
在firebug中,我可以看到在post标签中返回的正确数据。
我不确定发布的最佳位置,所以如果这不正确,请管理员,请根据需要修改。非常感谢。
jquery代码
//Begin function to submit report form
$(function(){
$(".frmreport").submit(function(){
var formdata = $(this).serialize();
$ajax({
type: "POST",
url: "../frm10010.php",
data: formdata,
dataType: "json",
success: function(msg){
$("#report_result").html("You have succesfully submitted your report. Thank you.");
}
});
return false;
});
});
// End function to submit report form
frm10010.php
<?php
$dept = mysql_real_escape_string($_POST['dept']);
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$position = mysql_real_escape_string($_POST['position']);
$feedback = mysql_real_escape_string($_POST['feedback']);
$form = array('dept'=>$dept, 'name'=>$name, 'email'=>$email, 'position'=>$position, 'feedback'=>$feedback);
$result = json_encode($form);
echo $result;
?>
HTML
<div id="report_result"></div>
<div id="formShow">
<form class=frmreport" method="post" class="webform">
<fieldset>
<legend><span class="subtitle">Submit Technical Report</span></legend>
<label for="dept">Department</label>
<input id="dept" name="dept" class="text" type="text" />
<label for="name">Full Name:</label>
<input id="name" name="name" class="text" type="text" />
<label for="email">Email address:</label>
<input id="email" name="email" class="text" type="text" />
<label for="position">Position:</label>
<input id="position" name="Position" class="text" type="text" />
<label for="feedback">Problem:</label>
<textarea name="feedback" cols="22" rows="5"></textarea>
</fieldset>
<input class="submit" type="submit" name="submit" value="Submit Report" />
<input class="cancel" type="reset" name="cancel" value="Clear Report" />
</form>
</div>
答案 0 :(得分:2)
这里有几处错误
$ajax({
应为$.ajax({
其次,表单类
中有错误<form class=frmreport" method="post" class="webform">
应该是
<form class="frmreport" method="post" class="webform">
答案 1 :(得分:1)
不要使用
$(".frmreport").submit(function(){
改为使用
$("#sub_btn").click(function(){
并在html中
<input class="submit" type="submit" name="submit" value="Submit Report" />
将其更改为
<input class="submit" id="sub_btn" type="button" name="submit" value="Submit Report" />
另一种方法是将提交处理程序设为false。但上面的解决方案将在这里工作还有。在ajax电话中缺失。