我希望用戶填寫表單並將輸入發送到SAME文件中的PHP腳本。澄清:表單,ajax腳本和PHP都在同一個文件中。我意識到將PHP分成它自己的request.php文件是最佳做法,但我真的想讓這種方法起作用。我有以下代碼:Ajax發佈到同一頁面返回數據和整個文件
PHP
$country = $_POST['ccode'];
$postal = $_POST['pcode'];
阿賈克斯
$(document).ready(function() {
$('#quick-quote').submit(function(e){
e.preventDefault();
$.ajax({
url: "same-page.php",
method: 'POST',
data: {
ccode: $('#country').val(),
pcode: $('#postal').val()
},
dataType: 'text',
success: function(data){
console.log(data);
},
error: function(data){
console.log("ajax failure");
}
});
});
});
HTML
<form id="quick-quote" class="" action="" method="post">
<label>Country</label>
<select id="country" name="country">
<option value="AU">Australia</option>
</select>
<label>Postal Code</label>
<input id="postal" type="text" name="postal" value="">
<input id="submit" type="submit" name="" value="submit">
</form>
當AJAX執行控制檯打印出:
Array
(
[ccode] => AU
[pcode] => 3000
)
後面跟着ENTIRE文件(PHP,Jquery,HTML)的內容。
我已經測試了一個單獨的php文件,併發布了ajaxed值,它工作正常。但我真的希望這一切都發生在同一個文件中(如果可能的話)。所以我的問題是:我怎樣才能解析出陣列的Ajax文章?或者更好的是,我怎麼才能發佈相關的鍵值對,而不是我的文件的其餘部分。我已經看到關於ajax返回整個文件的其他文章,但不是當它在同一頁面中調用時。
您需要構建您的PHP代碼,以便它可以識別何時它接收到AJAX請求並僅返回數組。 –
在單獨的文件中有一個php腳本,腳本和模板好多了。 – Mardzis