如何在 PHP 中读取和使用 ajax 数组



我不知道如何,也不知道如何在我的PHP文件中放入什么来检索AJAX请求发送的数组数据。我的 PHP 文件中需要什么才能逐个隔离数组项?(数组中的项目数量将是动态的)

我正在选中复选框值,并将这些值放入数组中。我将使用此数组将它们放入字符串中。我已经在我的 PHP 文件中尝试了以下内容,但没有得到任何结果......要么导致错误,要么页面回显/响应没有任何内容。

foreach ($_POST['$inputBoxesValues'] as $value) {
echo $value;
}
$amount = count($_POST);
for ($x = 0; $x <= $amount; $x++) {
echo $_POST[$x];
}
echo implode(",", $_POST);

我现在已经尝试过这个..和 php 文件响应没有
新的 AJAX 函数

function formProcess() {
var inputBoxesValues = $('input[type="checkbox"]:checked').map( function() {
return $(this).val();
}).get();
var jsonString = JSON.stringify(inputBoxesValues);
$.ajax({
url: 'itemprocessor.php',
data: {data : jsonString},
dataType: 'json',
method: 'POST',
success: function(result) {
window.location.href = "compare.php?" + result;
}
});
console.log(jsonString);
}

PHP文件...

$data = json_decode(stripslashes($_POST['data']));
foreach($data as $d){
echo $d;
}

我知道在 PHP 中使用、创建和编辑字符串,但我只是不知道如何使用发送到文件的数组数据。

按下"继续"按钮时调用此函数(以下为原始代码)

function formProcess() {
var $inputBoxesValues = $('input[type="checkbox"]:checked').map( function() {
return $(this).val();
}).get(); //makes array
$.ajax({
url: 'itemprocessor.php',
data: $inputBoxesValues,
dataType: 'json',
method: 'POST',
success: function(result) {
window.location.href = "compare.php?" + result;
}
});
console.log($inputBoxesValues);
}

结果的预期结果
/方法 - 用户选择框(有值)并单击继续,- AJAX 发送包含所选复选框值数组的数据,- PHP 文件发回一个字符串,

类似于item1,item2,item3
- 然后 AJAX 脚本将用户发送到带有响应字符串
的"比较.php"页面- "比较"页面使用 url 中的 GET 数据

目前只到第二步,如何实现读取AJAX数据?

更新:我现在已经尝试了其他事情(上面列出),但我注意到的一件事是,在我的 php 代码中,即使我尝试执行echo "Foo Bar";,PHP 代码仍然不返回任何内容。但是当我简单地在文件中不输入PHP代码而只键入"Foo Bar"时,在普通文本中,没有html格式或任何东西。该文件以"Foo Bar"响应 注意到
这一点,我现在也尝试echo '<span>'. $d .'<span>';.然后使文件返回"'. $d .''; } ?>"。这到底是怎么回事?

由于您正在使用POST因此您可以在发送 ajax 的 php 页面中使用$_POST。可以使用$_POST['variable_name']获取每个数据。

就像在你的例子中一样,尝试$_POST['$inputBoxesValues']获取数组并执行 foreach 来遍历每个值。

好吧......基本上我是个白痴,但现在我知道下次了!
我已经注释掉了以前的尝试,以及我使用的不同方法,所以我不会每次都"重新开始"。

我拥有的完整 PHP 文件

<?php/*
$amount = count($_POST);
//echo $amount;
for ($x = 0; $x <= $amount; $x++) {
//  echo $_POST[$x];
}
// echo implode(",", $_POST);
echo array($_POST);
$nickname[] = $_POST;
echo $_POST['webdesign'];*/
$data = json_decode(stripslashes($_POST['data']));
foreach($data as $d){
echo $d;
}
?>

问题是顶部该死的注释掉的东西(/*)。它没有空间,也没有在新行上,我不知道这是一个要求。为了修复它,我将注释字符放在新行上

<?php
/*
....

我的最终工作代码
jQuery/AJAX:

function formProcess() {
var inputBoxesValues = $('input[type="checkbox"]:checked').map( function() {
return $(this).val();
}).get();
$.ajax({
url: 'itemprocessor.php',
data: {data : inputBoxesValues},
dataType: 'text',
method: 'POST',
success: function(result) {
window.location.href = "compare.php?options=" + result;
}
});
console.log(inputBoxesValues);
}

.PHP:

<?php
echo implode(",", $_POST['data']);
?>

最新更新