0
我想提交一個表單。表單是在html中我使用jquery將表單傳遞給一個php頁面進行處理,並將json_encode傳回給用戶顯示結果。如果我嘗試在jquery提交給php的頁面上添加incude xxx.php,它會殺死所有的東西。PHP包括導致jquery提交功能不工作
這裏是如何勾畫出: 這是主要的頁面佈局,包括你可以看到
<form id="jq_forgot_password" class="forgot_password" action="" method="post" name="password_form">
<?PHP include 'widgets/recover_pass.php'; ?>
</form>
這是形式本身的內容形式:
<!-- Password Recovery Form-->
<div class="form_text">
<p>
<label for="email">Email:</label>
<input type="email" id="recover_email" name="recover_email" placeholder="Enter your email address" class="field_boarder" value="" size="25px" maxlength="255"/> </p>
<div class="login_button_container">
<input name="login_button" type="submit" class="login_button" value="Submit"/>
</div>
</div>
這是發佈表單數據並阻止默認提交按鈕刷新頁面的jquery腳本:
// Forgot Password Validation and Post Function
$(function(){
$("#jq_forgot_password").submit(function(e){
e.preventDefault();
$.post("widgets/recover_pass_process.php", $("#jq_forgot_password").serialize(),
function(data){
if(data.email_check == 'invalid'){
$('div.message_error').hide();
$('div.message_success').hide();
$('div.message_error').fadeIn();
$('div.message_error').html("<div'> Sorry you must enter a valid e-mail address. Try again.</div>");
} else {
$('div.message_error').hide();
$('form#jq_forgot_password').hide();
$('div.message_success').fadeIn();
$('div.message_success').html("<div'>You're Password has been sent to" + data.email + ". Thank you </div>");
}
}, "json");
});
});
這是PHP文件,jQuery的提交功能提交:
<?php
$email_check = '';
$return_arr = array();
if(filter_var($_POST['recover_email'], FILTER_VALIDATE_EMAIL)) {
$email_check = 'valid';
}
else {
$email_check = 'invalid';
}
$return_arr["email_check"] = $email_check;
$return_arr["email"] = $_POST['recover_email'];
echo json_encode($return_arr);
?>
這一切工作正常,但如果我添加一個包含語句在recover_pass_process的頂部。 PHP的是這樣的:
<?php
include 'func/user.func.php';
$email_check = '';
$return_arr = array();
if(filter_var($_POST['recover_email'], FILTER_VALIDATE_EMAIL)) {
$email_check = 'valid';
}
else {
$email_check = 'invalid';
}
$return_arr["email_check"] = $email_check;
$return_arr["email"] = $_POST['recover_email'];
echo json_encode($return_arr);
?>
然後這一切都到尖叫即使包含的文件沒有任何內容,也會停止。只是我試圖包含另一個文件殺死它。
我在做什麼錯?先謝謝你!!
確定的其他文件有什麼也沒有?它可能有空白的行,空格或Unicode字節順序標記,您看不到。該文本將在json響應之前發送,使得響應不再有效的json。你有沒有嘗試過任何調試?查看Web瀏覽器中的JavaScript控制檯是否有錯誤消息? –
問題不在於包括程序員在內。 – RobertPitt
測試包括我試過的文件是絕對空的,它只有,調試控制檯沒有錯誤。但不應該json_encode只發送($ return_arr)回來?哦,羅伯特皮特感謝..真的......超級有用。 –