2016-03-20 292 views
1

你好,我有麻煩得到ajax請求的響應,我做了很多次,但我不知道現在的問題是什麼,我一直在拉我的頭髮現在在這一天,我曾嘗試使用完整,錯誤或.done,沒有任何工作。我正在做的是通過Ajax插入數據,然後得到響應,如果數據插入,現在數據插入正常,但我沒有得到響應,你能幫我,並沒有控制檯錯誤。

insert_ajax.php

<?php 
?> 
<html> 
<head> 
    <title>Basic Ajax Insert</title> 
    <link rel="stylesheet" href="style/style.css" type="text/css"/> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css"/> 
    <script src="jquery-1.3.1.min.js"></script> 
    <script src="custom.js"></script> 
</head> 
<body> 
    <div class="container"> 
    <div id="succ"></div> 
    <h2 class="text-warning">Basic Information</h2> 
    <form id="form" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" autocomplete="off"> 

     <div class="form-group col-md-6"> 
      <label class="text-warning">First Name: </label> 
      <input class="form-control first_name" type="text" name="fname"  /> 
     </div> 

     <div class="form-group col-md-6"> 
      <label class="text-warning">Last Name: </label> 
      <input class="form-control last_name" type="text" name="lname" /> 
     </div> 

     <div class="form-group col-md-6"> 
      <label class="text-warning">Email: </label> 
      <input class="form-control email" type="text" name="email" /> 
     </div> 
     <div class="form-group col-md-6"> 
      <label class="text-warning">Password: </label> 
      <input class="form-control pwd" type="password" name="pass" /> 
     </div> 

     <button class="btn btn-warning" name="btn_sub">Send</button> 

    </form> 
    </div> 
</body> 
</html> 

ajax.php

<?php 

$con=mysqli_connect("localhost","root","","practices"); 

if(isset($_REQUEST['em'])){ 
echo'email received..: '.$_REQUEST['em']; 
} 

$fname=$_REQUEST["fn"]; 
$lname=$_REQUEST["ln"]; 
$email=$_REQUEST["em"]; 
$pass=$_REQUEST["pwd"]; 
//echo "returned"; 
$ins="insert into `user` (`first_name`,`last_name`,`email`,`password`) 
values('$fname','$lname','$email','$pass')"; 
$query=mysqli_query($con,$ins); 

if($query){ 
    echo "Data is entered Love"; 
} 
?> 

custom.js

$(document).ready(function(){ 

$(".btn").click(function(){ 

    var fname=$(".first_name").val(); 
    var lname=$(".last_name").val(); 
    var email=$(".email").val(); 
    var pass=$(".pwd").val(); 

    $.ajax({ 
     method: "POST", 
     url : "ajax.php", 
     data: {fn:fname,ln:lname,em:email,pwd:pass}, 
     success: function(r){ 
     alert(r); 
     } 

    }); 



}); 

}); 
+0

如果你在Firefox中使用開發者控制檯/鉻和看網絡選項卡,你看「的數據被輸入的愛」從ajax.php響應主體?嘗試向你的成功功能添加第二個參數並提醒:即成功:function(r,s)alert(r);警報(一個或多個); }' –

+1

您不會阻止您的表單傳統發佈,即'e.PreventDefault();'。所以你的js代碼爲你的'ajax.php'做了一個'$ .ajax()',但是你的頁面會被你的表單發佈刷新,所以它不會'alert()'響應。 – Sean

+0

@RobGudgeon ..不,我檢查了網絡選項卡,沒有迴應 –

回答

1

嘗試改變這些線後,

$(".btn").on("click",function(e){ 
    e.preventDefault(); 
var fname=$(".first_name").val(); 
var lname=$(".last_name").val(); 
var email=$(".email").val(); 
var pass=$(".pwd").val(); 

$.ajax({ 
    method: "POST", 
    url : "ajax.php", 
    data: {fn:fname,ln:lname,em:email,pwd:pass}, 
    success: function(ind,val){ 
    console.log(ind); 
    console.log(val); 
    } 

}); 
+0

看起來像我的答案,肖恩已經表明,是不正確的 –

+0

我只改變它.on slector,否則我不能找到任何不正確的東西在你的一些時間直接.click不工作,然後我做了。是的,我認爲你的答案是正確的:) –

+0

是的這個作品,謝謝你,歡呼! –

0

這個怎麼樣相反:

$.post("aqjax.php",{fn:fname,ln:lname,em:email,pwd:pass}) 
.done(function(data) 
{ 
//Do stuff here 
})