如何在PHP文件中访问Javascript数组并在Javascript中打印数组值


How to access Javascript array in PHP file and printing array values in Javascript

我有第一个PHP文件,我有表单,它的操作是将我引导到下一个php文件。代码片段如下:

 <form name="drugForm" action="drug_form2.php" onsubmit="return validateForm()" method="post">

在函数验证表单(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;
   }
  }

在这里,从这个函数中,我想将数组发送到 php,因此我引用了以下链接,但它不起作用:

使用 Ajax 发送数组到 PHP 脚本

现在,我的查询如下:

为什么我不能在第二个循环中打印数组值?如何访问 PHP 文件中的 javascript 数组?

我也有PHP文件来检查数组值是否正确打印,但它没有给出这些值。下面是第二个在PHP文件中获取javascript数组的PHP文件:

 <!DOCTYPE HTML>
 <html>
 <head>
  </head>
   <body>
  <?php
   $data = json_decode(stripslashes($_POST['data']));
 // here i would like use foreach:
  foreach($data as $d){
   echo $d;
   }
    echo "Its in form2 and working fine";
   ?>
  </body>
  </html>

我是否在正确的位置包含 ajax 函数?

您可以将 javascript 数组中的每个项目附加到由唯一字符分隔的字符串中。至于我的经验,这比将其作为数组传递更容易。然后将字符串传递给 PHP。

在 PHP 代码中,使用 string 方法explode从字符串中创建一个数组。然后使用其余的代码逻辑。

如果javascript数组是简单的数组,则将其更改为csv并传递它具有字符串。

在 php 服务器端,只需分解该字符串,您将再次获得 php 中的数组。

贾夫文

             $.ajax({
                 type: "POST",
                 url: "drug_form2.php",
                 data: {data : y_array.join(',')}, 
                 cache: false,
                 success: function(){
                     alert("OK");
                }
             });

.php

        $array= explode(",", $_POST['data']);