2013-02-25 3 views
0

Не знаю, почему я не смог получить сообщение sucess в JSON. Данные вставляются в базу данных хорошо, поэтому она работает, но сообщение обратного вызова (успех) нет. Я не знаю почему.Не могу получить сообщение об успешном завершении ajax

Этот файл должен помещать данные в базу данных.

include ("connect_to_mysql.php"); 
if (isset($_POST['register'])) { 
    $First_Name = mysql_real_escape_string($_POST['firstname']); 
    $Last_Name = mysql_real_escape_string($_POST['lastname']); 
    $Email = mysql_real_escape_string($_POST['email']); 
    $Password = mysql_real_escape_string($_POST['password']); 
    $Gender = mysql_real_escape_string($_POST['gender']); 

    $sql3 =mysql_query("SELECT email FROM members WHERE email = '$Email' "); 
    $result3= mysql_num_rows($sql3) ; 
    $found =''; 
    if ($result3 == 1) { 
     $found = "email already exist ! "; 
    } else { 
     mysql_query("INSERT INTO members (firstname, lastname,gender, email, password,bio_body, sign_up_date , account_type) 
     VALUES('".$First_Name."', '".$Last_Name."','".$Gender."','".$Email."','".$Password."','NULL' ,NOW() , 'a') "); 
     $found = "registered succefully !"; 
    } 
    echo json_encode(array('returned_val' => "$found")); 
    //-- i have tried this also echo json_encode(array('returned_val' => $found)); 
} 

это мой Аякса

$(document).ready(function(){ 

    $('#register').click(function() { 
     $('#mydata').html('Saving your data...<img src="images/loading.gif" />'); 
     $.ajax({ 
      url: "sendata.php", 
      dataType: 'json' , 
      data: { 
       firstname: firstname.value, 
       lastname: lastname.value, 
       email: email.value, 
       password: password.value, 
       gender: gender.value 
      }, 
      type: 'POST', 
      success: function(data){ 
       $('#mydata').html("<span style='font-size:18px; color: green;'> Your data is saved succefully! </span>").delay(3000).fadeOut('fast'); 
       alert(data.returned_val); 
       alert (1); 
      } 
     }); 
    }); 
}); 

OBS: о MySQL или некоторые вещи безопасности (passowrd) Я знаю, я буду фиксировать их, когда я исправить эту проблему.

спасибо за ваше время.

Edit: У меня нет никакого сообщения об ошибке

EDIT. HTML форма

<form action="" method="post" enctype="multipart/form-data"> 
    <table width="100%" class="noborder" > 
     <tr> 
      <td width="23%" height="47" class="right">First Name:</td> 
      <td width="77%" class="left left_nowrap"> 
       <input type="text" class="left left_nowrap tb10 border1" name ="firstname" id="First_Name" value="<?php echo $_SESSION['firstname']; ?>" /> 
      </td> 
     </tr> 
     <tr> 
      <td height="47" class="right">Last Name:</td> 
      <td valign="middle" class="left left_nowrap"> 
       <input type="text" class="left left_nowrap tb10 border1" name ="lastname" id="Last_Name" value="<?php echo $_SESSION['lastname']; ?>" /><br/> 
      </td> 
     </tr> 
     <tr> 
      ........ 
      <td valign="middle" class="left"><input id="register" name="register" type="button" class="submit1 tb10 border4" value="Sign - Up" /></td> 
+1

Добавьте обработчик ошибок, посмотрите, почему это ошибка. – epascarello

+0

нет ошибки, данные вставляются, но не возвращают сообщение об успешном завершении –

+0

Вы не анализируете данные после их получения в JavaScript, используйте 'JSON.parse' https://developer.mozilla.org/en-US/ docs/JavaScript/Reference/Global_Objects/JSON/parse или jQuery '$ .parseJSON()' http://api.jquery.com/jQuery.parseJSON/, в противном случае у вас есть только строка ... – xpy

ответ

-1

Использование console.log(data) быстро проверить AJAX ответ.

+0

где? в каком файле я его использую? –

+0

в вашем коде ajax, после строки «success: function (data) {» использовать Firebug в браузере Firefox –

+0

ничего не сделал, я проверил с firebug, и нет ошибки там просто файл sendata.php 200 ok 8ms –

0

Вы можете использовать error обратного вызова (documentation), который будет запускаться, если JQuery думает, что что-то пошло не так как отправлять данные, например:

$.ajax({ 
    url: "sendata.php", 
    dataType: 'json' , 
    data: { 
    firstname : firstname.value, 
    lastname : lastname.value, 
    email : email.value, 
    password : password.value, 
    gender : gender.value 
    }, 
    type : 'POST', 
    success: function(data){ 
    $('#mydata').html("<span style='font-size:18px; color: green;'> Your data is saved succefully! </span>").delay(3000).fadeOut('fast'); 
    alert(data.returned_val); 
    alert (1); 
    }, 
    error: function(data){ 
    console.log(data); 
    } 
}); 

Глядя на данные, напечатанных в консоли, должен быть в состоянии сказать, почему jQuery не вызывает ваш обратный вызов.

+0

Он может не видеть какой-либо ошибки, если это запрещено на стороне php. –

+0

Поскольку у него нет ошибок в его консоли, и обратный вызов 'success' никогда не запускается, единственное объяснение состоит в том, что по какой-то причине обратный вызов' error' срабатывает. –

+0

Может быть, но это будет регистрироваться в журнале ошибок. –

0

Вы должны проверить журнал ошибок PHP. Там должно быть что-то. Ваш javascript не возвращает никакого ответа, возможно, из-за некоторой ошибки на стороне PHP. Если в журнале ошибок PHP нет ничего, тогда внедрите обработчик ошибок в запросе ajax, там должно быть что-то.

+0

Я сделал точный php-код в файле ajax, и это нормально. нет ошибок –

+0

Ну, если у вас нет ошибки js и нет ошибки php, то, возможно, вы каким-то образом перенаправляетесь. Могу я увидеть это где угодно? Где я могу проверить это? –

Смежные вопросы