次の設定を検討してください。
- ページ読み込み時に作成されるフォーム
<form id="mybase64" method="POST">
<input id="basevalue" name="basevalue" type="text" value="" />
</form>
次に、JSON データから作成した配列をループするように設定します。これはすべて検証、チェックされており、期待どおりに機能します。
ここでやりたいことは、配列をループして base64 でエンコードされた画像を取得することです。これは、PHP を使用してデコードしたいと考えています。これを行うには、post メソッドを使用して IE ブラウザーの URl 制限を回避したいと考えています。
したがって、私のループでは、jQuery フォーム プラグインを使用して #mybase64 フォームを 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フォームリクエストを使用して配列から新しいデータを送信できるかどうかについて、誰かが洞察を提供できますか?
お時間をいただきありがとうございました
/ミッケル