1

当我使用附加的代码提交表单时,而不是出现在 div 中的消息,屏幕正在刷新本身,并且它在浏览器缓存中保存完成的表单。我显然在某个地方弄错了,如果有人能指出我的错误,我将不胜感激。我已经发布了相关代码,但是如果我遗漏了什么,请告诉我。

在萤火虫中,我可以看到帖子选项卡中返回的正确数据。

我不确定发布的最佳位置,所以如果这是不正确的,管理员,请在您认为合适的情况下进行修改。非常感谢。

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>
4

2 回答 2

2

你这里有几个错误

$ajax({应该$.ajax({

其次,您在表单类中有错误

<form class=frmreport" method="post" class="webform">

应该

<form class="frmreport" method="post" class="webform">
于 2013-06-18T11:31:16.367 回答
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" />

另一种使提交处理程序为假的方法。但上述解决方案将在这里工作。还有 . ajax 调用中缺少。

于 2013-06-18T11:35:26.653 回答