我有一个照片上传系统,允许用户上传他们想要的任意数量的照片,然后我允许他们为每张照片添加说明,然后发布照片。我有这个,部分。我也用jQuery提交表单。现在我在试图弄清楚如何做的方法是将每个表单元素发送到我的php文件,然后更新每张照片以获得描述。
<form class="upload-results-form" rel="<?php echo $albumID?>" action="javascript:return false;">
<textarea class="description" name="photoID1"></textarea>
<textarea class="description" name="photoID2"></textarea>
</form>
现在这是关于如何设置它的想法,除了可能有一个textarea或20个。
为了尝试保存和发布这些,我正在使用这样的jQuery:
$("body").on("submit", ".upload-results-form", function(){
$.ajax({
type: "POST",
url: "ajax/add/photos_publish.php",
cache: false,
success: function(html){
}
});
});
那我怎么能让我的php浏览每个texarea表单并保存该photoID的描述?
答案 0 :(得分:1)
问题是JQuery Ajax不会自动为您构建POST数据。所以,你必须自己构建它。您可以创建一个JSON对象并提交它(然后在PHP中使用json_decode
),或者您可以创建 urlencoded 表单数据并在PHP中获取常规_POST
数组
var _photoID1 = $('#my_form_id').find('input[name="photoID1"]').val();
var _photoID2 = $('#my_form_id').find('input[name="photoID2"]').val();
var data = { photoID1 : _photoID1, photoID2 : _photoID2 };
$("body").on("submit", ".upload-results-form", function(){
$.ajax({
type: "POST",
data: data,
url: "ajax/add/photos_publish.php",
cache: false,
success: function(html){ }
});
});
对于此方法,您可能需要添加标头以将Content-Type
设置为application/json
。
var post_data = "photoID=" + encodeURIComponent(_photoID1)
+ "&photoID2=" + encodeURIComponent(_photoID2);
$("body").on("submit", ".upload-results-form", function(){
$.ajax({
type: "POST",
data: post_data,
url: "ajax/add/photos_publish.php",
cache: false,
success: function(html){ }
});
});
两种方式都可以将您的数据传送到服务器。
(上面的代码没有完全调试,但基本上是正确的。)