Javascript 如何使用php发布一个数组并循环它?

Javascript 如何使用php发布一个数组并循环它?,javascript,php,jquery,mysql,arrays,Javascript,Php,Jquery,Mysql,Arrays,我有一个输入字段,当用户输入内容时,它会立即使用jQueryreplace函数创建一个数组。目标是将这些值发送到PHP,并在MySQL中的特定表上执行实时搜索 我得到了input字段的部分和ajax调用,但到目前为止我还没有完成php循环的部分。 我的目标是将此数组序列化后发送到php,并将每个项用作变量。 这是我的jQuery和HTML 这是我的代码: HTML: 这是我的字符串的外观: ["This", "is", "my", "string"] 0:"This" 1:"is" 2:"my

我有一个输入字段,当用户输入内容时,它会立即使用jQuery
replace
函数创建一个数组。目标是将这些值发送到PHP,并在MySQL中的特定表上执行实时搜索

我得到了
input
字段的部分和
ajax
调用,但到目前为止我还没有完成php循环的部分。

我的目标是将此数组序列化后发送到php,并将每个项用作变量。

这是我的jQuery和HTML

这是我的代码:

HTML:

这是我的字符串的外观:

["This", "is", "my", "string"]

0:"This"
1:"is"
2:"my"
3:"string"

您需要以密钥/值对的形式发送,或者以
application/json
的形式发送和接收

现在您只发送一个没有键的值,该键可以通过
$\u POST

试一试

在php中

$arr = $_POST['arr'];//php array
要将其作为json执行,请执行以下操作:

$.ajax({
   url: '/url/to/page',
   contentType:'application/json',
   data: JSON.stringify(splittedSource)
   // other options
});
//php
$arr = json_decode(file_get_contents('php://input'),true);

虽然我觉得您可以(甚至应该)在后端代码中处理这样的逻辑,但您可能想看一下

这建议您使用以
[]
结尾的名称。由于默认情况下发布表单只需使用
应用程序/x-www-form-urlencoded
enctype,因此您只需将值
myarray[]=a&myarray[]=b
。。。请求正文中的etc,PHP将其解释为数组值
$\u POST['myarray']

这是常见的格式

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
您需要发送正确的格式,如

$.post( "test.php", { name: "John", time: "2pm" } );
所以你的代码需要更新

$.post('/url/to/page', splittedSource); 

因此,您可以使用

<?php
$data = $_POST['data'];
有关ajax post的更多信息


那么问题出在哪里?您是否尝试过使用
print\r($\u POST)
查看服务器上的内容?您不能将任何内容作为数据参数,它必须采用jQuery可以使用/转换为适当请求格式的格式,如
application/x-www-form-urlencoded
,例如
$.POST(url,{data:splittedSource})
。我已经更改了
$.post
部分。@PatrickEvans-实际上你几乎可以。只发送一个数组作为
数据
很好,但您在服务器上没有访问它的密钥,它只会用数据填充
$\u POST
但是我像多个请求一样发送,数据
数组
会立即更改,并且可能有多个元素,因此我需要执行
while
foreach
循环,以将所有这些数组元素转换为变量。这是我不确定的部分。我使用一个
输入
字段,用户输入值,所有这些值由jquery
replace
函数分隔。除了0,1,2,3之外,我不能给每个对象一个键
$.post( "test.php", { name: "John", time: "2pm" } );
$.post('/url/to/page', splittedSource); 
$.post('/url/to/page',{data: splittedSource});
<?php
$data = $_POST['data'];
$("button").click(function(){
    $.post("demo_test_post.asp",
    {
        name: "Donald Duck",
        city: "Duckburg"
    },
    function(data, status){
        alert("Data: " + data + "\nStatus: " + status);
    });
});