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"]
對不對?
你把'session_start();'放在'adduser.php'文件的頂部嗎? – DanielX2010
如果你這樣做了,你的'FILTER_VALIDATE_EMAIL'可能不會被驗證,因爲你在'@' – DanielX2010
的地方有一個'%40',你可以向我們發送你從這個console.log(data)得到的結果。 – mbouzahir