我试图在同一页面上发布一个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());
}
}
?>
答案 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