将javascript数组传递给php函数

时间:2015-08-11 09:26:50

标签: javascript php jquery arrays

我试图在同一页面上发布一个javascript数组到我的php函数,如下所示,每个框都被点击为数组添加一个新数字,然后你点击deletephotos并将数据库编辑为del = 2;但是它说阵列是未定义的,但我已经使用了#34; alert"显示数组确实有

中的值

Javascript

var numberlist = new Array();
function selectImage(div){

    var whichDiv = "selectdiv" + div ;
    var opa = document.getElementById(whichDiv).style.opacity;
    if(opa == '0'){
     document.getElementById(whichDiv).style.opacity = '1';
     document.getElementById(whichDiv).style.display = 'block';
     numberlist.push(div);
     alert(numberlist);
    }else{
    document.getElementById(whichDiv).style.opacity = '0';
     document.getElementById(whichDiv).style.display = 'none';
     var index = numberlist.indexOf(div);
     if (index > -1) {
    numberlist.splice(index, 1);

    alert(numberlist);
}
}
}

PHP

<?php
if(isset($_POST['deletephotos'])){
$javascriptarray = $_POST['numberlist'];
$javascriptarray = explode(',', $javascriptarray);  

foreach($javascriptarray as $val) {

    $result = mysql_query("UPDATE gallery SET del='2' WHERE id='$val'")
    or die(mysql_error());


}
}

?>

2 个答案:

答案 0 :(得分:1)

由于页面中没有表单,因此无需使用javascript创建数组。

创建一个虚拟(隐藏)表单,其字段数与div相同。

然后使用javascript为表单元素指定值,之后您现在使用javascript提交表单。

    <div style="visibility:hidden">
     <form name="dummy" action="process_pic.php" method="post">
  //process_pic.php is the php file that the form values will be passed to.

name属性包含所有技巧,分配给输入元素的值会自动添加到&#34; pic []&#34;阵列。                                                    

    <script>
    var item1 = document.getElementById(pic1);
    var item2 = document.getElementById(pic2);
    var item3 = document.getElementById(pic3);
//If there are no other form elements on the page, you can get elements in an array using:   var input = document.getElementsByTagName('input'); 
//Assign values (you can do this in a loop if you have the elements in an array)
    item1 = 3
    item2 = 5
    item3 = 1

    //Submit form
    document.dummy.submit();
    </script>

在process_pic.php中,您现在可以随意使用数组

$php_array =  array();
$php_array =  $_POST[pic];

您现在可以随意使用阵列。

答案 1 :(得分:0)

您可以创建数组的json字符串表示形式,并使用ajax

将其传递给php