2017-06-17 117 views
0

我有一個註冊表單,我想在div中顯示一些消息。我爲此使用Ajax。令人困惑的事實是,在ajax塊中,它進入'錯誤'分支並顯示http statuts 200.可以這麼做嗎?提交事件在表單上。我應該戴上按鈕嗎?我怎樣才能解決它做我想要的?Ajax混淆http狀態

謝謝

這裏是我的html

<form id="register" class="modall-content animate" action="register.php" method="post"> 
...... 
<div id = "error-reg"></div> 
<div id = "success-reg"></div> 
</form> 

PHP代碼是這樣的

if(isset($_POST['btn-rg'])) { 
.. 
if ($count == 0) { 
    if ($check == 1) 
     $query = "INSERT INTO ..."; 
    elseif ($check == 2) 
     $query = "INSERT INTO ..."; 
    else { 
     $query = "INSERT INTO ..."; 
    } 

    if ($db->query($query)) { 
     $success .= "Success"; 
     /*echo $success;*/ 
     echo json_encode(array("success" => $success)); 
    } 

} else { 
    $message .= "Username already exists"; 
    /*echo $message;*/ 
    echo json_encode(array("message" => $message)); 
} 

/*$response = array(); 
$response['success'] = $success; 
$response['errors'] = $message; 
echo(json_encode($response));*/ 
} 

而我的JS

$("#register").on('submit',function (event) { 

event.preventDefault(); 
var dataPost= $('#register').serialize(); 
$.ajax({ 
    url: 'register.php', 
    type: 'post', 
    dataType : 'json', 
    data: dataPost, 
    success: function(data) { 
     if (response.success) { 
      $('#error-reg').hide(); 
      $('#success-reg').html(response.success).css('color','green'); 
     } else { 
      $('#error-reg').html(response.errors); 

     } 
    }, 
    error: function (data) { 
     console.log(data); 
    } 
}); 

}); 

當我做了提交,這是什麼我得到enter image description here

+1

從ajax調用中得到的迴應是什麼? –

+0

提交事件屬於表單。 PHP響應應該在een echo語句中。 'echo json_encode(...)' – Daniel

+0

響應是來自錯誤分支的數據。 – Alina

回答

0

在您的register.php右上方。

保持這個代碼,但它註釋將out.It給你訪問看,並確保有什麼用武之地。

// echo json_encode($_POST); 
    // exit; 

你沒看到$_POST['btn-rg'] ??? --->不!

您是否將HTML按鈕聲明爲輸入?

<input type='submit' name='btn-rg' value='Submit'> 

現在取出folowng行並將其放在if語句的頂部。我想確保我們進入這個聲明。你應該期待再次看到「hello world」。

echo json_encode(array("message" => "hello world")); 
exit; 
+0

是的,第一個回聲解決方案工作..它顯示在控制檯信息'你好世界'。 – Alina

+0

太棒了..它還活着;-) ..這意味着它在你的PHP中出錯了。 我更改爲發佈以進一步排查故障。 – Daniel

+0

在控制檯中,我有我以 – Alina