2010-07-01 4 views
1

Я только что попробовал и более или менее отказался от отправки массива функции jQuery post, которые затем выкладываются как переменные POST.jQuery .post с массивом динамических переменных

Я читал много подобных вопросов здесь, но никто, кажется, не получил его.

Я попробовал все, что я мог, закрывающее был того дерево следующего

function sendValue(requestArray, requestAction){ 
$.post("requests.php", { request: requestAction, 'requestArray[]': function() { $.each(requestArray, function(key, value) { return key: value; }); } }, function(data){ $('#display').html(data.returnFromValue); 

}, "json"); 
} 

, лаять? С тех пор я получил это, выполнив сериализацию того, что был requestArray, и перешел на PHP, чтобы быть parse_str, но любое руководство могло бы помочь получить это так, как я хотел.

ответ

1

Прямо сейчас, похоже, что вы передаете функцию как параметр запроса. Я просто вытащил этот код и сначала собрал вашу карту, а затем передал его функции post.

function sendValue(requestArray, requestAction){ 
    var requestParameters = {}; 
    requestParameters["request"] = requestAction; 
    $.each(requestArray, function(key, value) { 
     requestParameters[key] = value; 
    }); 
    $.post("requests.php", requestParameters, function(data){ $('#display').html(data.returnFromValue); }, "json"); 
} 

Если вы действительно хотите, чтобы они оставались на карте, а не сплющивали их, возможно, попробуйте что-то подобное. Я не уверен, что PHP будет обрабатывать его автоматически, но вы, возможно, можете написать код PHP, чтобы собрать карту самостоятельно.

function sendValue(requestArray, requestAction){ 
    var requestParameters = {}; 
    requestParameters["request"] = requestAction; 
    $.each(requestArray, function(key, value) { 
     requestParameters["requestArray[" + key + "]"] = value; 
    }); 
    $.post("requests.php", requestParameters, function(data){ $('#display').html(data.returnFromValue); }, "json"); 
} 
0

Насколько я знаю, если вы добавляете квадратные скобки в формах ввода, PHP будет ожидать, что ключ содержит плоский вспомогательный массив, так:

<input name="foo[]" value="blahblah"/> 
<input name="foo[]" value="blahblah"/> 

позволит получить массив типа :

array("foo" => array("blahblah", "blahblah")); 

Я не думаю, что можно иметь множество пар ключ/значение в вашей requestArray[], как то, что вы пытаетесь сделать, например, чтобы получить на сервере что-то вроде:

array("foo" => array("bar" => "baz, "hehe" => "hahah")) 

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

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

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