每个用户发布到php页面

时间:2016-10-07 21:14:13

标签: php jquery

你好溢出者!

目前我坚持的问题是:

  • 我已设法为所选用户添加“✓”。
  • 我为每个列出的用户添加了“data-id”属性。

我想弄清楚的是我如何将用户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

1 个答案:

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