【发布时间】:2021-03-02 10:27:34
【问题描述】:
我正在创建 Web 应用程序,其中有两个不同的列表。我已将列表转换为数组,并且我想将该数组从 JavaScript 传递到 PHP 以进行进一步分析。
这是一个类似于我的原始代码的示例
test_2.html
<form method="post" id="theform" action="test_2.php">
<ul id="control">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<ul id="treatment">
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
</ul>
<button>Submit</button>
</form>
<script>
window.onload = function () {
var form = document.getElementById('theform');
var lst = [];
var lst2 = [];
form.addEventListener('submit', function () {
var lis1 = document.querySelectorAll('#control li');
for (var i = 0; i < lis1.length; i++) {
lst.push(+lis1[i].innerText);
}
var lis2 = document.querySelectorAll('#treatment li');
for (var i = 0; i < lis2.length; i++) {
lst2.push(+lis2[i].innerText);
}
var array = [lst, lst2]
$.ajax({
type: "POST",
url: "php/test_2.php",
data: {"data":array},
datatype: "json",
success: function(response){
alert("response " + response);
}
});
}
</script>
test_2.php
$sub_array = var_dump($_POST['data']);
echo $sub_array;
问题是我无法传递数组。我已经尝试过我的事情,也确实提到了很多问题:-
how to use JSON.stringify and json_decode() properly
【问题讨论】:
-
旁注:
var_dump()返回void。所以,$sub_array = var_dump(...)没有意义。 -
你为什么要首先提交一个静态值列表?如果用户无法更改这些值中的任何一个 - 那么您必须在这些列表已经创建时就已经知道它们。这大概发生在服务器上(?)。那么为什么你现在需要向服务器提交值到,服务器应该已经知道了?
-
您可以使用 json stringify 将您的数组转换为 JavaScript 中的字符串,然后在 php 中使用 json_decode 将其转换回来。
-
@Farhad 我已经尝试过我的系统出现延迟并且不响应页面
-
@CBroe 这只是一个例子。列表是完全动态的
标签: javascript php jquery json ajax