私はフォームを使ってAjax経由で画像をアップロードできるようにするためにJqueryを使用しています。アップロードされた各画像にウォーターマークを追加する機能を追加しました(これはupload_image.phpで行います)。この部分はうまく動作します。Jquery val()は、選択されている最初の選択値を常に取得します。
ユーザーは、フォームセレクトを使用して、画像に透かしを配置する場所を選択できます。私はJQueryの.val()を使用してid = "透かし"の値を取得し、それをupload_image.phpに渡すクエリ文字列値として追加します。
問題は、実際にフォームで選択したものに関係なく常に最初の選択値を渡すことです。私はそれを関数に入れようとしました(ページの読み込み時に値を取得していたと思います)。選択をラジオボタンに変更しました。それはまだページ上の最初のラジオボタンの値を取得します。あなたが選んだものであっても。ここ
は、これを処理するスクリプトの一部である:
<script type="text/javascript" >
$(function(){
// build URL to php upload script with watermark placement
function setWatermark() {
var uploadUrl = 'http://www.mysite.com/upload_image.php?w=';
var watermarkValue = $('#watermark').val();
var watermarkUrl = uploadUrl + watermarkValue;
return watermarkUrl;
}
var btnUpload=$('#upload');
new AjaxUpload(btnUpload, {
action: setWatermark(),
name: 'uploadfile',
});
});
</script>
これは、(取り除か無関係なフィールドを持つ)フォームである:
<form id="image_form" action="this_form.php" method="post" enctype="multipart/form-data">
<select id="watermark">
<option value="top_left">Top Left</option>
<option value="top_right">Top Right</option>
<option value="center">Center</option>
<option value="bottom_left">Bottom Left</option>
<option value="bottom_right">Bottom Right</option>
</select>
<div id="upload" ><span><img src="upload_button.jpg" /></span></div>
</form>