0

我有一个照片上传系统,允许用户上传他们想要的任意数量的照片,然后我允许他们为每张照片添加描述,然后发布照片。我有这个,部分。我也用 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 的描述?

4

1 回答 1

1

问题是 JQuery Ajax 不会自动为您构建 POST 数据。因此,您必须自己构建它。您可以创建一个 JSON 对象并提交它(然后json_decode在 PHP 中使用),或者您可以创建urlencoded表单数据并在 PHP 中获取常规_POST数组。

var _photoID1 = $('#my_form_id').find('input[name="photoID1"]').val();
var _photoID2 = $('#my_form_id').find('input[name="photoID2"]').val();

JSON方法:

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-Typeapplication/json.

表单 POST 方法:

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){  }
   });
});

这两种方式都会将您的数据发送到服务器。

(以上代码未完全调试,但基本正确。)

于 2012-09-25T05:01:44.400 回答