你好溢出者!
目前我坚持的问题是:
我想弄清楚的是我如何将用户data-id
从jquery发布到我的php页面。
Jquery的:
task_takers = [];
var i = 0;
$(".new-task-takers ul.select_takers li").each(function(){
$(this).click(function(){
$(this).toggleClass("active");
if($(this).find('.fa').length > 0){
$(this).find('.fa').remove();
}else{
$('<i class="fa fa-check" aria-hidden="true"></i>').insertBefore($(this).find("div"));
}
console.log("Selected:", $(this).data("id"));
i += 1;
task_takers[i] = $(this).data("id");
console.log(task_takers);
console.log(i);
});
});
console.log(task_takers);
PHP:
$task_takers = isset($_POST['task_takers']) ? $_POST['task_takers'] : NULL;
var_dump($task_takers);
我得到的只是一个空白
修改
我得到了它的工作,但问题是,如果您选择用户并取消选择并重新选择,阵列就会被淹没。
阵列: [1:2,2:3,3:3,4:3,5:3,6:3]
正如您所见,垃圾邮件ID:3
答案 0 :(得分:0)
您必须将数据发送到php脚本才能使其正常工作。
以下是文档中jQuery.ajax的一个小例子:
$.ajax({
method: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
我通常使用它如下:
$("form").submit(function(){
$.ajax({
type: 'POST',
url: "/relative/path/to/php/script.php",
data: $("form").serialize(),
success: function(data) {
console.log(data)
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
});
希望它有所帮助。
编辑
自上次编辑以来: 您可以使用array_unique从PHP脚本中删除数组的重复项来解决此问题。
例如:
php > $arr = array("1" => 2, "2" => 3, "3" => 3, "4" => 3, "5" => 3, "6" => 3);
php > print_r($arr);
Array
(
[1] => 2
[2] => 3
[3] => 3
[4] => 3
[5] => 3
[6] => 3
)
php > $uniq_arr = array_unique($arr);
php > print_r($uniq_arr);
Array
(
[1] => 2
[2] => 3
)