2013-08-28 3 views
0

양식 데이터를 직렬화하고 로깅 한 다음 PHP 파일로 보내서 null을 반환합니다.AJAX가 PHP 파일에 아무 것도 보내지 않습니다.

jQuery를 :

$('#preregister').submit(function() { 


    if(checkemail("prereg_email")) { 

     var data; 

     data = $(this).serialize(); 
     console.log(data); 

     $('#imageloader').fadeIn(); 
     $.ajax({ 
      url: '/docs/adduser.php', 
      data: data, 
      processData: false, 
      contentType: false, 
      type: 'POST', 
      success: function (data) { 
       //console.log(data); //returns a string of the data. 
       var data = JSON.parse(data); //parses the string into an object. 
       console.log(data); //logs the object. 
       if (data.error) { alert(data.message); } 
      } 

     }); 

    } 

     return false; 
    }); 

PHP는 :

<?php 

    $Return = array(); 
    $Return["in"] = $_POST; 
    $Return["error"] = false; 
    $Return["message"] = "Nothing has happened."; 

    /* EMAIL */ 
    $in_email = urldecode($_POST["prereg_email"]); 
    $Return["in_email"] = $in_email; 

    if (!filter_var($in_email, FILTER_VALIDATE_EMAIL)) { 

     $Return["error"] = true; 
     $Return["message"] = "Enter a valid email."; 

    } 

    if (!$in_email) { 

     $Return["error"] = true; 
     $Return["message"] = "Enter an email."; 

    } 


    str_replace('\\/', '/', json_encode($Return)); 
    echo json_encode($Return); 

?> 

데이터가 돌아 오면, 그것은 말한다 : 나는 데이터를 전송하기 직전 때문에, 홀수

Object {in: Array[0], error: true, message: "Enter an email.", in_email: ""}

, 나는 그것을 기록하고 읽는다 :

prereg_email=rbross3%40gmail.com

그래서 ... 적어도 적어도 $Return["prereg_email"]을 가져야합니다.

+0

'adduser.php' 파일 맨 위에'session_start();'를 넣었습니까? – DanielX2010

+0

그랬다면'FILTER_VALIDATE_EMAIL'은 아마도'@' – DanielX2010

+0

대신'% 40'을 가지고 있기 때문에 아마 유효하지 않을 것입니다.이 console.log (데이터)에서 얻은 것을 우리에게 보낼 수 있습니까? – mbouzahir

답변

1

processData: false,을 사용해 보았으므로 사용하지 않았다고 생각합니다. .serialize()는 이미 문자열을 반환하므로 processData가 필요하지 않습니다. false,

관련 문제