发送多个base64到PHP

时间:2015-08-04 06:24:22

标签: javascript php jquery ajax base64

我想通过jquery' s $post()发送多个base64字符串。字符串的数量并不总是相同的。我怎么能这样做并在php中获取它?

将所有字符串放在数组中并将其添加到$post()

中是一个不错的选择
var items = [
    "data:image/png;base64,i.....", 
    "data:image/png;base64,i....", 
    "data:image/png;base64,i...."
] //the number od these strings varies on each post
$.post("../send.php",
   {
     for(i=0;i<21;i++){
        'item'+i: items[i]
     }
   },
)

PHP:

if($_POST['item1']){
   $item1 = $_POST['item1'];
}

3 个答案:

答案 0 :(得分:2)

我会采取以下步骤:

1)创建一个包含所有这些base64字符串的输入字段的表单。 (表单及其所有字段都可以隐藏在html中) 2)在我的表单中,所有输入文本字段都可以具有相同的名称,例如

<input type="text" name="text1[]">

2)当我需要添加一个新字符串时,我将使用jQuery.append()在该表单中添加一个输入字段 3)在我的jquery帖子中,我将数据设置为

$.post('../send.php',$('#myFormId').serialize(),function(){
   // what i want to do with the response
})

4)在我的php页面中,我可以轻松地循环

foreach($_POST['item1'] as $item){
    // do what you want with data
}

就是这样!

答案 1 :(得分:1)

我会创建一个常规的字符串数组,然后迭代到字符串数组,并使用for循环将它们添加为对象的属性。这是一个例子。

var items = []; // Empty array.
items.push(item1, item2, item3); // Add Base64 strings.

var postdata = {}; // An object for our postdata.

// Iterate through the array and add items as properties to the object.
for (var _i = 0, _j = items.length; _i < _j; _i++) {
  postdata['item_'+_i] = items[_i]; }

// POST the object to the PHP file.
$.post("../send.php", postdata);

然后,在PHP中,从jQuery获得$_POST['item_1']直到$_POST['item_n']。 :)

更新

您可以在PHP中处理postdata,如下所示。

<?php

  foreach($_POST as $k => $v) {
    // Do things for each item POSTED.
    // This will end after the last POSTed item is reached.

    // $k is the 'key', as in what's inside the square brackets of $_POST[]
    // $v is the 'value', as in $_POST[key] = "THIS STUFF";
  }

?>

希望这很有用!

答案 2 :(得分:1)

试试这个

JS :  

$.post("../send.php",{items:items}); //send to server

PHP:

$_POST['items'] // catch in server