数据无法正确显示

时间:2013-06-18 11:20:22

标签: php jquery ajax

当我使用附加代码提交表单时,屏幕自动刷新而不是显示在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>

2 个答案:

答案 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电话中缺失。