将JavaScript数组传递给PHP

时间:2017-03-15 20:52:50

标签: javascript php jquery ajax

我在php文件中有这样的列表:

<ul id="alist">
  <li>Item1</li>
  <li>Item2</li>
  <li>Item3</li>
</ul>

使用jquery我已经能够获取该列表:

var array = [];
$("#alist li").each(function() {
    array.push($(this).text())
});

在阅读了几篇关于使用json,ajax的帖子后,这就是我试过没有成功的。在我的js文件中:

$.ajax({
    type: "POST",
    url: "checklist.php",
    data: { kvcArray : array},
    success: function() {
        alert("Success");
    }
});

在我的PHP文件中:

<?php
  $myArray = $_POST['kvcArray'];
  var_dump($myArray)
?>

我得到&#34; null&#34;的结果,任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

不确定我是否误解了这个问题,但这在我的计算机上运行正常(它会记录您的数组数据):

--- index.php ---

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  </head>
  <body>

    <!-- Your list -->
    <ul id="alist">
      <li>Item1</li>
      <li>Item2</li>
      <li>Item3</li>
    </ul>

    <!-- Your JS -->
    <script>
    var array = [];
    $("#alist li").each(function() {
        array.push($(this).text())
    });

    $.ajax({
        type: "POST",
        url: "checklist.php",
        data: { kvcArray : array},
        success: function(data) {
          console.log(data);
        }
    });
    </script>

  </body>
</html>

--- checklist.php ---

<?php print_r($_POST); ?>

答案 1 :(得分:0)

直接的方法是将数组的值附加到表单中的隐藏输入字段。

  1. 使用jquery获取列表值并推送到数组
  2. 将数组转换为字符串,为表单提交做好准备
  3. 向具有id和空值属性的表单添加隐藏输入
  4. 将您的字符串附加到此输入字段。
  5. 提交您的帖子,在PHP上,您将能够将您的数组视为字符串。
  6. 转换回php端的数组并presto!
  7. 欢迎你

答案 2 :(得分:-1)

我找到了一个通过http://webcheatsheet.com/php/passing_javascript_variables_php.php

的查询字符串传递值的好例子
<script type="text/javascript">

width = screen.width;
height = screen.height;

if (width > 0 && height >0) {
    window.location.href = "http://localhost/main.php?width=" + width + "&height=" + height;
} else 
    exit();

</script>

PHP

<?php
echo "<h1>Screen Resolution:</h1>";
echo "Width  : ".$_GET['width']."<br>";
echo "Height : ".$_GET['height']."<br>";
?>