2016-03-20 6 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? попробуйте добавить второй параметр к вашей функции успеха и оповещению о том, что, например, «успех: функция (r, s)) { alert (r); оповещение (ы); } ' –

+1

Вы не мешаете своей форме публиковать сообщения традиционно, то есть' e.PreventDefault(); '. Таким образом, ваш js-код выполняет '$ .ajax()' на ваш 'ajax.php', но ваша страница затем обновляется путем размещения вашей формы, поэтому она не будет« 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, иначе я не могу найти какую-либо ошибку в ur ans некоторое время напрямую .click не работает, тогда я сделал это с. на да, я думаю, ур аз прав :) –

+0

Да, это работает, спасибо человеку, привет! –

0

Как об этом вместо:

$.post("aqjax.php",{fn:fname,ln:lname,em:email,pwd:pass}) 
.done(function(data) 
{ 
//Do stuff here 
}) 
Смежные вопросы