2017-02-23 52 views
0

我有我通過AJAX提交給一個PHP函數,像這樣一種形式:序列化表單數據只返回一個字母(「R」)

var formData = $(form).serialize(); 
    $.ajax({ 
     type : 'post', 
     dataType : 'json', 
     url : myAjax.ajaxurl, //we can use this value because in our php file we used wp_localize_script 
     context:this, 
     data : {action: 'tps_save_rental_details', formData:formData }, 
     success: function(response) { 
      alert (response.testing); 
     } 
    }); 

我認爲,通過使用.serialize()它會通過在JSON格式的表單數據,然後我可以用它在我的PHP函數,像這樣:

$formData = $_REQUEST['formData']; 

$rentalType = $formData['rentalType']; 

$result['testing'] = $rentalType; 

(租賃型是第一個文本輸入字段的名稱/ ID)

但是,當我提醒$ results的返回值['t esting']在我的ajax成功函數中,我只得到一個字符,字母「r」,甚至沒有出現在該字段的值(即「class-education」)中。

這是通過ajax傳遞表單輸入值的最佳方式嗎?如果是這樣,我可能在這裏做錯了什麼。

回答

1

serialize方法只是採用表單元素並將其放入字符串形式。 "varname=val&var2=val2"

你可以在PHP中獲取這些值,如:

$params = array(); 
parse_str($_GET, $params); 

具體到OP的情況:

$formData = array(); 
parse_str($_REQUEST['formData'], $formData); 
$result['testing'] = $formData['rentalType']; 
+0

啊哈!這是有道理的,我假設序列化吐出不同的格式。 – Eckstein

相關問題