Плагин формы jQuery - зацикливание отправляет с динамическим входным значением - PullRequest
1 голос
/ 13 мая 2011

Рассмотрим эту настройку:

  • Форма создана при загрузке страницы

<form id="mybase64" method="POST"> <input id="basevalue" name="basevalue" type="text" value="" /> </form>

Теперь я настроил для зацикливания массив, который я создал из данных JSON. Это все проверено, проверено и работает как положено.

Что я хочу сейчас сделать, так это пройти по массиву, чтобы получить изображение в кодировке base64. Это я хочу декодировать с помощью PHP. Чтобы сделать это, я хочу использовать метод post, чтобы обойти ограничение URl для браузеров IE.

Поэтому в моем цикле я отправляю форму # mybase64 с помощью плагина jQuery Form в мой файл PHP. Все это почти работает. Цикл запускается, вызывается файл PHP и изображение обновляется в целевом элементе.

ПРОБЛЕМА. Несмотря на то, что я использую цикл for, а значение поля ввода фактически обновляется, форма jquery продолжает передавать одни и те же точные данные в течение всего цикла, несмотря на то, что я обновляю значение поля ввода.

Вот как я это делаю

for (var i = (JSpage - 1) * 12; i < JSresults; i++) {
    if (!JSON[i].firstname) { var firstName = ' '; } else { var firstName = JSON[i].firstname; }
    if (!JSON[i].lastname) { var lastName = ' '; } else { var lastName = JSON[i].lastname; }
    if (!JSON[i].photo_base64) {
        $('#ECbuttons').append('<li class="clickcontact" id="' + i + '"><img src="design_img/contact-no-image.jpg" /><div>' + firstName + '<br>' + lastName + '</div></li>');
    } else {
        //update input field
        $('#basevalue').val(JSON[i].photo_base64);

        //confirm that input field's value does change (check!)
        var mi = $('#basevalue').val();
        alert(mi);

        //Add new li element to be updated with new image
        $('#ECbuttons').append('<li class="clickcontact" id="' + i + '"><img style="height: 65px; width: 65px" src="" /><div>' + firstName + '<br>' + lastName + '</div></li>');
    }
    //dynamically set options for jQuery form submit
    var options = { 
            //target is handled correctly and keeps getting updated with the same image 
            target:     '#' + i, 
        url:        'system/showbase.php'
    }; 
    //submit the form on each run (check with a success handler, this gets called always
    $('#mybase64').ajaxSubmit(options); 
}

Может кто-нибудь предложить какую-либо информацию о том, можно ли отправлять новые данные из массива с помощью запроса формы ajax, и если да, то как?

Большое спасибо за потраченное время

/ Миккель

...