循环通过多个选择ajax数据

时间:2014-12-05 00:25:59

标签: javascript php jquery ajax

我有一个多选项,可以让我检查多个项目。我想通过ajax请求发送这些选定的项目,之后我想将这些项目导入我的数据库。我的问题是,我不知道如何循环通过传递的数组,我通过POST请求获得。

Ajax请求

function insertPlayers(){   
    var data = $("#playerCards").serialize();

    $.ajax({
        url: "/database/playercards.php",
        type: "POST",
        data: data,
        success: function (response) {
        }
    });    
}

这是我的HTML多选:

<select multiple id="assignAccount" name="assignAccount" class="form-control select">
// Options inserted by JQuery later
</select>

这是我在发送Ajax请求之前提醒它时的数据:

playersearch=test&buypercentage=85&assignAccount=9&assignAccount=10&assignAccount=11

如何将选项添加到我的多个选择框中:

// loop the response
$.each(response, function(i, e){
    // just use your column names, these are just an example, but you get the idea
    opt += '<option value="'+e.id+'">'+ e.email + ' - ' + e.coins + '</option>';
});
// append the markup to that select box
$('#assignAccount').html(opt)

我的问题: 现在应该很清楚,assignAccount变量是一个我希望在PHP中循环的数组,但我不知道如何做到这一点,因为我不知道索引。这就是我尝试过的:

$accountIds = $_POST['assignAccount'];
foreach ($accountIds as $account){
    echo $account;
}

3 个答案:

答案 0 :(得分:2)

更改

<select multiple id="assignAccount" name="assignAccount" class="form-control select">

更像是

<select id='assignAccount' name='assignAccount[]' multiple='multiple' class='form-control select'>

答案 1 :(得分:1)

使select语句多个id为数组

 <select name='assignAccount[]' id='assignAccount[]'>
在你的php页面上,你现在将有一个数组用于这篇文章。

 $_POST['assignAccount'][0]
 $_POST['assignAccount'][1]

等等。

答案 2 :(得分:0)

多个发送数据时的select元素如下:

playersearch=test&buypercentage=85&assignAccount=9,10,11

因此,在PHP方面,你这样做:

$accountIds = explode(",", $_POST['assignAccount']);
foreach ($accountIds as $account){
    echo $account;
}