Javascript 如何使用php发布一个数组并循环它?
我有一个输入字段,当用户输入内容时,它会立即使用jQueryJavascript 如何使用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
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
循环,以将所有这些数组元素转换为变量。这是我不确定的部分。我使用一个输入
字段,用户输入值,所有这些值由jqueryreplace
函数分隔。除了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);
});
});