2014-12-02 88 views
0

我在用AJAX发布表单中的数据时遇到了问题。并非所有的值都被插入(带有“@”符号的电子邮件)。但是,如果我单独发送,它会被插入。Ajax没有发布一个值

这是jQuery代码:

$("#my_reservation_form").submit(function() { 
    if($("#terms_checkbox").prop("checked")) { 
     var data = $("#my_reservation_form").serialize(); 

     //alert(data); for testing 

     $.ajax({ 
      type: "POST", 
      data: data, 
      url: "functions/reservation_form.php", 
      dataType:"text", 
      success: function() { 
       console.log("ok"); 
      }, 
      error: function() { 
       console.log("error"); 
      } 
     }); 
    } else { 
     alert('You have to accept terms'); 
    } 
}); 

PHP端:

$table_id = $_POST['id']; 
$date = $_POST['date']; 
$time = $_POST['time']; 
$people = $_POST['people']; 
$fname = $_POST['fname']; 
$lname = $_POST['lname']; 
$tel = $_POST['tel']; 
$email= $_POST['email']; 

$query = "INSERT INTO reservation(table_id,fname,lname,tel,email,reservation_date,time,people) values ('$table_id','$fname','$lname','$tel','$email','$date','$time','$people')"; 
if ($result = $db->query($query)) { 
    //echo "Reservation added"; 

} else { 
    echo $db->error; 
} 
$db->close(); 

通过我使用jQuery验证插件来验证输入的方式。

形式:

  <input class="input_text" name="id" type="hidden" value="<?php echo $_POST['table_id'];?>"> 
      <input class="input_text" name="date" type="hidden" value="<?php echo $_POST['date'];?>"> 
      <input class="input_text" name="time" type="hidden" value="<?php echo $_POST['time'];?>"> 
      <input class="input_text" name="people" type="hidden" value="<?php echo $_POST['people'];?>"> 
      <input class="input_text" name="fname" type="text" placeholder="Name"> 
      <input class="input_text" name="lname" type="text" placeholder="Surname"> 
      <input class="input_text" name="tel" type="text" placeholder="Tel"> 
      <input class="input_text" name="email" type="text" placeholder="Email"> 
      <div class="error"></div> 

      <div id="terms"> 
       <input id="terms_checkbox" type="checkbox" name="terms" checked="checked"><label for="terms">Blah blah I agree</a> 
      </div> 
      <div id="terms_text"> 
       <p><?php terms(); ?></p> 
      </div> 
      <button class="button_ui" id="button_reserve" type="submit" name="submit">Reserve</button> 
     </form> 
+0

你你做//警报(数据);为了测试你看到电子邮件了吗?它只有当你有@时才起作用。 – 2014-12-02 09:02:08

+0

在此处张贴表格 – 2014-12-02 09:03:11

+0

是的,我看到它,但“@”符号更改为“%40”。 – WilsonG 2014-12-02 09:03:32

回答

0

问题就解决了。必须把所有东西都放入validate插件的submitHandler事件中。