2014-02-17 46 views
0

这是我的html/ajax/jquery和php文件。我在数据库 插入数据,但数据没有在我的数据库使用ajax和php插入数据到MYSQL

<html> 
<head> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js</script> 
<script> 
function add() { 
    $("#register-form").validate({ 
     rules: { 
      name: "required", 
      email: { 
       required: true, 
       email: true 
      }, 
      Budget: { 
       required: true, 
      }, 
      phone: "required", 
      budget: "required", 
     }, 
     messages: { 
      name: "Please enter your Name", 
      email: "Please enter a valid Email address", 
      phone: "Please enter a valid Phone Number", 
      Budget: "Please Select a Budget", 
     }, 
     submitHandler: function (form) { 
      //alert("success") 
      $.ajax({ 
       url: "insert2.php", 
       type: "POST", 
       success: function (response) { 
        alert("Data Save: " + response) 
       } 
      }); 
     } 
    }); 
} 
</script> 
</head> 
<body> 
    <form action="" method="post" id="register-form" > 
     <div class="label">Name</div><input type="text" id="name" name="name" /><br /> 
     <div class="label">Email</div><input type="text" id="email" name="email" /><br /> 
     <div class="label">Phone Number</div><input type="text" id="phone" name="phone" /><br /> 
     <div class="label">budget</div> 
     <select id="Budget" name="Budget"> 
      <option value="">select</option> 
      <option value="1">0-100</option> <!-- first option contains value="" --> 
      <option value="2">100-200</option> 
      <option value="3">200-300</option> 
     </select> 
     <br /> 
     <div style="margin-left:140px;"> 
     <input type="submit" onclick="add()" name="submit" /></div> 
    </form> 
</body> 

这是我的HTML/AJAX/jQuery和PHP文件中插入。我必须在数据库 中插入数据,但数据未插入到我的数据库中。

 <?php 
    $con=mysqli_connect("xxxxxxxx","xxx","xx","xx"); 
     if (mysqli_connect_errno()) 
     { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    $sql="INSERT INTO form (name, email, phone) 
VALUES 
    ('$_POST[name]','$_POST[email]','$_POST[phone]')"; 

    if (!mysqli_query($con,$sql)) 
    { 
     die('Error: ' . mysqli_error($con)); 
     } 
     echo "1 record added"; 

     mysqli_close($con); 
     ?> 
+0

你做了什么错误? – Dev

+0

没有错误显示,但在数据库ID正在增加,但数据不显示 – user3292597

+0

您没有将您的数据从您的ajax代码传递到serverside(php文件)。你需要传递如下形式的数据:data:$(“#register-form”)。serialize(); –

回答

2

使用此

data:$('#register-form').serialize(), 

传递表单数据试试这个代码

$.ajax({ 
    url: "insert2.php", 
    type: "POST", 
    data: $('#register-form').serialize(), 
    success: function (response) { 
     alert("Data Save: " + response) 
    } 
}); 
+0

thanx你的anaswer是正确的 – user3292597

-2

试试这个

<?php 
$con=mysqli_connect("xxxx","xxx","xxx","xx"); 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$name = mysqli_real_escape_string($con, $_POST['name']); // to restrict from mysql injections 
$email = mysqli_real_escape_string($con, $_POST['email']); 
$phone = mysqli_real_escape_string($con, $_POST['phone']); 
$sql="INSERT INTO form (name, email, phone) VALUES('$name','$email','$phone')"; 

if (!mysqli_query($con,$sql)) 
{ 
    die('Error: ' . mysqli_error($con)); 
} 
echo "1 record added"; 

mysqli_close($con); 
?> 
+0

string mysqli_real_escape_string(mysqli $ link,string $ escapestr)http://in1.php.net/mysqli_real_escape_string –

+0

我错过了它现在更正 –

0

尝试在阿贾克斯将序列化的数据:

submitHandler: function(form) { 
     //alert("success") 
     $.ajax({ 
      url:"insert2.php", 
      type:"POST", 
      data: $('#register-form').serialize(), // <---here 
      success: function(response){ 
      alert("Data Save: " + response) 
      } 
     });   
    } 

,你可以补充一点:

data: $('#register-form').serialize(), 

或本:

data: $(this).closest('#register-form').serialize(),