多个表单输入,如何提交它们并保存到mysql

时间:2012-09-25 04:03:23

标签: php jquery mysql database forms

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

1 个答案:

答案 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();

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-Type设置为application/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){  }
   });
});

两种方式都可以将您的数据传送到服务器。

(上面的代码没有完全调试,但基本上是正确的。)