[英]Serialized AJAX $_POST is not empty but single $_REQUEST is empty
我正在這樣撥打AJAX電話:
$( "#submit_jobs_preview" ).click(function(e) {
var postData = $('#new_job_form').serialize();
var formURL = "ajax.xxx.php";
$.ajax({
type: 'POST',
url: formURL,
data: {submit_jobs_preview: postData },
success: function(data){
alert(data);
}
});
e.preventDefault(); //STOP default actio
});
在PHP中,我回聲:
echo $_POST['submit_jobs_preview'];
這個$ _POST顯示我正確輸入表單的所有值,如下所示:
new_job_city=Berlin&new_job_name=Manager etc.
但是,如果我想從此$ _POST中獲得一個$ _REQUEST,如下所示:
if($_POST['submit_jobs_preview']){
echo $city = mysql_real_escape_string($_REQUEST['new_job_city']);
}
警報為空。
這是為什么? :)
提前致謝!
UPDATE
全部返回數據:
XHR Loaded (autocomplete.php - 200 OK - 105.99994659423828ms - 354B) VM2106:3
new_job_city=Halle&new_job_job=Flugbegleiter&new_job_other_job=&job_zielgruppe=Auszubildende&new_job_phone=4921663965439&new_job_email=kleefeld%40dsc-medien.de&new_job_detailhead=F%C3%BCr+unser+zentrales+Marketing+mit+Sitz+in+der+Hauptverwaltung+in+der+City+von+D%C3%BCsseldorf+suchen+wir+zum+n%C3%A4chstm%C3%B6glichen+Termin+eine%2Fn&new_job_time=Vollzeit&teilzeit_std=&new_job_tasks=&new_job_profile=&new_job_advantage=&new_job_creatorId=1&new_job_creationDate=1390569795&new_job_scope=Airport+Service&new_job_niederlassung=7&new_job_active=0
$ _POST ['submit_jobs_preview']包含一個字符串,別無其他,因此您無法以這種方式訪問它。 使用parse_str()反序列化$ _POST ['submit_jobs_preview']。 這樣,您可以訪問其屬性。
$_POST['submit_jobs_preview']['new_job_city']
如果沒有必要,則不需要使用{submit_jobs_preview: postData }
。 我會給你另一個提示。 使用以下ajax;
$( "#submit_jobs_preview" ).click(function(e) {
var postData = $('#new_job_form').serialize();
var formURL = "ajax.xxx.php";
$.ajax({
type: 'POST',
url: formURL,
data: postData,
success: function(data){
alert(data);
}
});
e.preventDefault(); //STOP default actio
});
並且在PHP方面;
if($_POST['new_job_city']){
echo $city = mysql_real_escape_string($_REQUEST['new_job_city']);
}
在這種情況下,您可以直接使用字段名稱。
另一個提示:
您可以在表單上添加隱藏值,例如,
<input type="hidden" name="submit_jobs_preview" value="true"/>
和js端與我的答案相同,而在php端,您可以像這樣檢查;
if($_POST['submit_jobs_preview']){
echo $city = mysql_real_escape_string($_REQUEST['new_job_city']);
}
如您所見,您可以將帖子值發送為隱藏字段並進行檢查
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.