如何在PHP文件中访问Javascript数组并在Javascript中打印数组值
我有第一个PHP文件,其中有表单,它的作用是将我引导到下一个PHP文件。代码片段如下所示:如何在PHP文件中访问Javascript数组并在Javascript中打印数组值,javascript,php,jquery,ajax,arrays,Javascript,Php,Jquery,Ajax,Arrays,我有第一个PHP文件,其中有表单,它的作用是将我引导到下一个PHP文件。代码片段如下所示: <form name="drugForm" action="drug_form2.php" onsubmit="return validateForm()" method="post"> 在函数validateForm(javascript)中,我检查文本区域是否已填充,并且至少选中了一个复选框。我正在用javascript创建数组,以获取复选框值。js代码如下: function
<form name="drugForm" action="drug_form2.php" onsubmit="return validateForm()" method="post">
在函数validateForm(javascript)中,我检查文本区域是否已填充,并且至少选中了一个复选框。我正在用javascript创建数组,以获取复选框值。js代码如下:
function validateForm()
{
var x=document.forms["drugForm"]["dname"].value;
var y=document.drugForm.drug;
var y_array = [];
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
else if (Boolean(x))
{
for(k=0;k<y.length;k++)
{
if(y[k].checked)
{
var arr_val = y[k].value;
y_array.push(arr_val);
//alert(arr_val);
}
}
for(m=0;m<y.length;m++)
{
if(y[m].checked)
{
for(l=0;l<y_array.length;l++)
{
alert("This is array " + y_array[l]);
}
dataString = y_array ; // array?
var jsonString = JSON.stringify(dataString);
$.ajax({
type: "POST",
url: "drug_form2.php",
data: {data : jsonString},
cache: false,
success: function(){
alert("OK");
}
});
//alert("The array length is " + y_array.length);
//return true;
}
}
alert("Check one checkbox at least");
return false;
}
}
函数validateForm()
{
var x=document.forms[“drugForm”][“dname”]值;
变量y=document.drugForm.drug;
变量y_数组=[];
如果(x==null | | x==“”)
{
警告(“必须填写姓名”);
返回false;
}
else if(布尔(x))
{
对于(k=0;k,您只需将javascript数组中的每个项附加到一个由唯一字符分隔的字符串中即可。根据我的经验,这比将其作为数组传递要简单。然后将字符串传递给PHP
在PHP代码中,使用string方法explode
从字符串中创建一个数组。然后使用代码逻辑的其余部分。如果javascript数组是简单数组,则将其更改为csv,并将其传递为字符串
在php服务器端,只需分解该字符串,您将再次获得php中的数组
javscript
$.ajax({
type: "POST",
url: "drug_form2.php",
data: {data : y_array.join(',')},
cache: false,
success: function(){
alert("OK");
}
});
php
$array= explode(",", $_POST['data']);
实际上,我使用了相同的一个,修改过的一个,但它不起作用。我在javascript中放置ajax函数的做法正确吗?您的ajax函数应该在for循环之外
$array= explode(",", $_POST['data']);