0
私は、ユーザーが写真をアップロードしたり、コメントやタグを追加できるページを作成しています。写真がアップロードされる前に、それがユーザに表示されます。 ユーザーが投稿ボタンを押すと、データがデータベースに送信されます。私の問題は、写真とタグの両方を同時にアップロードできないことです。 TokenInputプラグインを使用してタグをキャッチしています。 写真とタグを1つのAjaxリクエストに追加する
<form method="post" action="" class="snap-pic">
<section class="new-snap-upload">
<img src="images/newsnap-icon.png" alt="Image" class="newsnapbox">
<div class="errortext" style="color: red;"></div>
<input type="file" name="newsnap" id="uploadnewsnap">
<button id="imgbutton">Upload Snap</button>
</section>
<section class="snapitems">
<h5>About this outfit</h5>
<textarea rows="10" cols="60" name="aboutoutfit" class="aboutfit"></textarea>
<div class="error-items" style="color: red;"></div>
</section>
<section class="snaptags">
<h5>Tags</h5>
<input type="text" name="tags" class="tagbox-snap">
<div class="error-tags" style="color: red;"></div>
<img src='' alt="" class="loader-gif"></img>
</section>
<input type="submit" class="submit-snap" name="submit-snap" value="Post!">
</form>
アップロードスナップ上のユーザーのクリックは、彼らがアップロードしたい写真を選択して取得し、それが<img>
タグに表示されます
$(".snap-pic").on('submit', (function (e) {
e.preventDefault();
$(".errortext").text('Loading...');
$.ajax({
url: "snap-ajax.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData: false,
success: function (data)
{
$(".errortext").text('OK');
}
});
}
));
が、私はこれを使用しているタグを挿入するには:
var names = [];
$('.tagbox-snap').siblings("ul").find('li p').each(function() {
names.push($(this).html());
//names.push($(this).text());//possibly better
tags = names.join()
});
$.ajax ({
url: "ajax-training.php",
type: "POST",
data: {'tags': tags},
success: function (data) {
alert(data);
},
error: function() {
alert("Problem");
}
});
は、しかし、私は同時に両方の機能を使用するように見えることはできません。私が写真をアップロードするために使用するとき、私はタグのためにそれを使用することができません。 {'tags':tags}と一緒に新しいFormDataを送信できますか?私は実際にどのようにFormDataを使用するか分からない。 私はそれを同じページに送ります。
混乱した投稿には申し訳ありませんが、十分にわかりやすいと思います。 ありがとうございました。
はい、魔法のように働いた:
コードは次のようなものになるだろう!ありがとうございました! – davidb