为什么 Javascript 数组不会在 php 中崩溃?

Why Javascript array doesn't implode in php?

其实我有这个数组var checked_rls= ['24','56'];

            var checked_rls = []
            $("input[name='chk_cont[]']:checked").each(function ()
            {
                checked_rls.push($(this).val());
            });

然后我尝试使用 AJAX

传递它
  $.ajax(
            {
                type :"POST",
                url : "sale_ajax.php",
                data: 
                {
                    rls :  checked_rls,
                    rls_date : $("#rls_date").val()
                },
                success: function(msg)
                {
                    alert('saved successfully');

                },
                error: function()
                {
                    alert("Failure");
                }
            });

然后我在 sale_ajax.php 文件中收到了这样的数组 $cont = $_POST['rls'];

现在的问题是我可以在 forEach 函数中 运行 这个数组,但是当我试图将这个数组内爆成一个字符串时它只有 returns 一个值。

例如在这种情况下,我通过了 24,56 并且当我尝试 implode(",",$cont);它只有 returns 第一个值,24:

var_dump($cont) output is
array(2){[0]=>string(2) "24" [1]=>string(2) "56"} 

而 php 代码是:

if(isset($_POST['rls']))
    {
        $rls_date = $_POST['rls_date'];
        $cont = $_POST['rls'];
        $rls_cont_sold = implode(",",$cont);

         $rls_insert = mysql_query("INSERT INTO release_details (release_date, cont_sold_id) VALUES (STR_TO_DATE('$rls_date', '%d-%m-%Y'), '$rls_cont_sold')")or die(mysql_error());          
         $id = mysql_insert_id();

        foreach($cont as $val)
        {       
          $cont_sold_update = "UPDATE cont_sold SET release_details_id = '$id' WHERE cont_sold_id = '$val'";
          $insert = mysql_query($cont_sold_update)or die(mysql_error());         
        }
    }

而 var_dump($_POST) 是

array(2){ 
["rls"]=>(array(2){[0]=>string(2) "24" [1]=>string(2) "56"})
["rls_date"]=>string(10) "10-04-2015"
}

在这种情况下实际发生了什么? 谢谢

将以下代码放入 chk_count 元素的 click 事件中:-

$("input[name='chk_cont[]']").click(function(){         
          var checked_rls = [];
            $("input[name='chk_cont[]']:checked").each(function ()
            {
                checked_rls.push($(this).val());
            });
});

与其传递一个数组,为什么不传递一个字符串本身,它会减少你的步骤。

       var checked_rls = "";
        $("input[name='chk_cont[]']:checked").each(function ()
        {
            checked_rls += $(this).val()+",";
        });