2013-05-20 2 views
-1

У меня есть вызов AJAX, возвращающий массив на PHP-HTML-страницу.Передача массивов из AJAX в HTML на PHP - это возможно?


Вот некоторые блоки кодов:

Javascript:

«Примечание: get_data.php возвращает строку HTML, и я хочу, чтобы сохранить его в массиве.»

var param_array = new Array(); 
$.post('get_data.php', { id: id }, function(data)) 
{ 
    param_array.push(data); 
    $('#hidden_input').val(param_array); 
} 

HTML:

<form action='my_function' method='post'> 
    <input type='hidden' id='hidden_input' name='array_from_ajax'> 
    <input type='submit' name='btn_submit'> 
</form> 

PHP - CodeIgniter:

my_function() 
{ 
    $param_array = $this->input->post('array_from_ajax'); 
    print_r($param_array); // Will this work? will $param_array contain the value? 
} 

Вопросы:

  1. Возможно ли вернуть значение массива и вставить его в HTML-страницу?
  2. Является ли массив JavaScript таким же, как массив PHP?
  3. В конце концов, будет ли мое $param_array в PHP содержать значение, переданное из вызова AJAX?
+0

Не можете ли вы просто пройти тест и дать нам ошибки, если они есть? –

+0

Фактически фактический источник является «МНОГО ЛИНИЙ». Я просто подвел итог, поэтому я хотел бы спросить, будет ли этот алгоритм работать, прежде чем я смогу выполнить основные изменения. :) –

+0

ах ок. Я бы придерживался ответа JSON-encode, это нормальный способ обработки такого сообщения. –

ответ

1

JavaScript и PHP могут связываться только через HTTP и только через строки (если вы не можете SOAP, я думаю, если это возможно). То есть нет совместимости в структурах данных между ними, поэтому массив JavaScript <> массив PHP. Аналогично, вы не можете установить входное значение в массив JavaScript.

Лучший способ справиться с этим, вероятно, состоял бы в JSON-кодировании массива, прежде чем устанавливать его на значение ввода. PHP может легко декодировать JSON в структуры данных, которые он может использовать.

+1

'json_encode ($ mixed) => JSON' и' json_decode ($ json) => Mixed' –

+0

, так что теперь возможно иметь это так далее? например 'json_encode (данные); $ ('# hidden_input'). val (json_encode); '? теперь php получит массив? Извините, я не знаком с JSON :) –

+1

@PawCabelin использовать '$ (" # hidden_input "). Val (JSON.stringify (data));' –

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