2017-02-23 86 views
0

У меня есть форма, что я вношу через AJAX для функции PHP как так:Последовательные данные формы через AJAX возвращает только одну букву («г»)

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; 

(аренда типа это имя/идентификатор первого поля ввода текста)

Но когда Я предупреждаю возвращаемое значение $ results ['t esting '] в моей функции успеха ajax. Я просто получаю один символ, букву «r», которая даже не появляется в значении этого поля (что означает «классное образование»).

Это лучший способ передать входные значения формы через ajax? Если да, то что я могу делать неправильно здесь.

ответ

1

Метод serialize просто принимает элементы формы и помещает их в строчную форму. "varname=val&var2=val2"

Вы можете получить эти значения в PHP, как:

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

Specific к делу ФП в:

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

Aha! Это имеет смысл, я предполагал, что сериализация выплевывает другой формат. – Eckstein

 Смежные вопросы

  • Нет связанных вопросов^_^