【问题标题】:Pass javascript array from file.xhtml to php array using ajax [closed]使用ajax将javascript数组从file.xhtml传递到php数组[关闭]
【发布时间】:2013-10-14 06:19:02
【问题描述】:

我有 2 个页面,分别是 file.xhtmlsubmit-exec.php。 我正在使用 ajax 将我的 javascript 数组从 xhtml 文件传递​​给 php。 我在网上找到了几个教程,但没有一个能解决我的问题。 我仍然想知道 xhtml 是否有任何问题?

数组:

var array = [];
array.push({ name: "name", value: document.forms["form"]["name"].value});
array.push({ name: "email", value: document.forms["form"]["email"].value});
array.push({ name: "mobile", value: document.forms["form"]["mobile"].value});

文件.xhtml

$.ajax({ //to run exec in background
    type: 'POST',
    url: 'submit-exec.php',
    data: {'data' : array},

    success: function(){
        alert("ok");
    }
});

提交-exec.php

$myArray = $_POST['data'];

print_r($myArray);

谁能帮帮我?

谢谢!

【问题讨论】:

  • 您已经发布了一些代码,除了 array 未定义之外,这些代码可以正常工作。有什么问题?会发生什么与您预期的不同?
  • 您需要在发送之前对您的数据进行 JSON 化处理(数据:{'data' : array.serialize()} - 我认为),然后转换回 php 可以理解的对象(json_decode($_POST{ '数据']) )。

标签: javascript php ajax arrays


【解决方案1】:

您可以简单地发送一个对象(我不会更改变量名称“array”以适合您的 ajax,但您绝对应该)

var array = {name: document.forms["form"]["name"].value, email: document.forms["form"]["email"].value, mobile: document.forms["form"]["mobile"].value}  

无需转成字符串

【讨论】:

    【解决方案2】:

    无法通过 POST 发送对象。因此,要使您的代码正常工作,您必须将数组转换为字符串并将其转换回服务器端的数组。例如:

    data: {'data' : array.join(',')},
    

    在服务器端,使用explode将其转换回数组:

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

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 1970-01-01
      • 2023-03-13
      • 2021-02-10
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多