Массив сериализации будет входить с тем же именем - PullRequest
0 голосов
/ 13 сентября 2011

у меня есть 3 входа, 2 из которых я хочу в одном массиве (name = "notes ['a']" и name = "notes ['b']"), но когда я использую jquerys serializeArray ( ) он ставит их всех на одном уровне. Но я хочу использовать php для сериализации массива размещенных заметок в базу данных, используя метод, который работал для входных данных, которые не являются частью массива (т.е. name = "basic"

foreach($_POST['data'] as $var => $value) {

    if(!strstr(strtolower($value['name']),'added')) $q1 .= "".$value['name']."='".$value['value']."',";

}

echo $q = "UPDATE ".$_POST['table']." SET ".rtrim($q1,',')." WHERE ".$_POST['idField']."=".$_POST['id']." ";    


*the array $_POST['data'] is getting posted as;*
 [data] => Array
        (
            [0] => Array
                (
                    [name] => notes[\'a\']
                    [value] => dan@jynk.net
                )

            [1] => Array
                (
                    [name] => notes[\'b\']
                    [value] => Daniel Crabbe
                )

            [2] => Array
                (
                    [name] => test
                    [value] => Daniel Crabbe
                )

        )

но я предполагаю, что это должно быть по этим направлениям?

[data] => Array
        (
            [0] => Array{
                Array(
                    [name] => notes[\'a\']
                    [value] => dan@jynk.net
                )
                Array
                (
                    [name] => notes[\'b\']
                    [value] => Daniel Crabbe
                )
            )


            [1] => Array
                (
                    [name] => test
                    [value] => Daniel Crabbe
                )

        )

как я могу получить JQuery для уважения массивов во входном массиве? любая помощь добро пожаловать ...

1010 * ОБНОВЛЕНИЯ * не так, но нужно все на уровне [0] для легкого доступа ...

Array
(
    [0] => Array
        (
            [name] => cm_email_to
            [value] => dan@jynk.net
        )

    [1] => Array
        (
            [name] => cm_name_to
            [value] => Daniel Crabbe
        )

    [2] => Array
        (
            [name] => cm_moveToList
            [value] => 
        )

)

*inputs*
<input id="cm_email_to" name="cm_email_to" value="dan@jynk.net" class="toPostCM" />
<input id="cm_name_to" name="cm_name_to" value="Daniel Crabbe" class="toPostCM" />

*jquery*
var dataCMSettings = $(".toPostCM").serializeArray();

Ответы [ 3 ]

3 голосов
/ 13 сентября 2011

Попробуйте извлечь массив значений из имени ввода:

<input name="notes[]" value="val1" />
<input name="notes[]" value="val2" />
0 голосов
/ 13 сентября 2011

хорошо - это именно то, что мне нужно ...

var params = {};

$('.toPostCM').each(function(index,value) {
    params[value.name] = value.value;
});

console.log(params);

*gives me*
Array
(
    [cm_email_to] => dan@jynk.net
    [cm_name_to] => Daniel Crabbe
    [cm_moveToList] => 
)

спасибо всем ...

0 голосов
/ 13 сентября 2011

Удалите кавычки из индексов вашего массива в HTML, так что array['a'] станет array[a].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...