我有一个一维数组,可以根据复选框的更改进行填充和删除。为了演示该架构,我的数组如下:
arrReservedSeats = [“ 1A”,“ 3B”,“ 5C”,...]
一些操作后,我想在php端使用此数组将它们存储在数据库中。由“购买”按钮触发的我的javascript函数的ajax部分如下:
Ajax代码:
$.ajax({
url: 'makePurchase.php',
type: 'POST',
dataType: 'text',
data: {"arrResSeats" : arrReservedSeats}
})
.done(function(response) {
if(response == "success")
{
//..
}
else if(response == "failure")
{
//..
}
})
.fail(function(jqXHR, status, error) {
alert(jqXHR.response);
})
.always(function(){
//..
});
我不希望将某些数据返回到javascript端,所以我只是使用了将数据作为“文本”返回的方式。
makePurchase.php:
if(isset($_POST["arrResSeats"]))
echo("<script>console.log('PHP: ".$_POST["arrResSeats"]."');</script>");
// Database operations...
if(//operations are okay)
echo "success";
else
echo "failure";
问题是,我无法通过ajax与我的php页面进行通信(我可以发送一个变量,而无需使用json,但在这种情况下,我需要传递一个数组)。感谢您的关注!
注意:我已经检查了Stackoverflow上几乎所有相关的链接,但是我无法在我的项目中使它们有用。
答案 0 :(得分:1)
我同意,可能应该可以。如果您得到的状态码不是200,例如404或500,则PHP页面的URL可能有错误,或者PHP页面本身有问题。我在服务器上尝试了它,尽管$ _POST [“ arrResSeats”]已经是一个数组,但它看起来确实可以工作。您不必解码它。
如果我放:
Windows("as_built_comp.xlsm").Activate
Sheets(siteName).Activate
j = Cells(Rows.Count, 1).End(xlUp).Row
Range("C2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
wb.Activate
Range("I12").Select
For i = 1 To 1440
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=56
ActiveCell.Offset(j - 1, 0).Select
Next i
在php页面上,我得到:
<?
$arrResSeats = $_POST["arrResSeats"];
print_r($_POST["arrResSeats"]);
?>
我不确定您是否甚至必须先在HTML页面上先进行Stringify然后进行解析。
Array
(
[0] => 1A
[1] => 3B
[2] => 5C
)
您也许还可以只传递一个JSON字符串作为arrResSeats或ResSeatsJSON(重命名)的值,然后在PHP页面上对其进行解码。
答案 1 :(得分:0)
为了使问题更容易理解: 当我触发其他ajax函数(它们可以正常工作)时,“网络”标签如下所示:
但是,当我尝试此操作时,结果不是应该的结果:
The problematic one (仅此,“网络”标签中没有更多操作)
如您所见,没有“ POST”操作。我正在使用与其他(正确)功能相同的功能。我看不出有什么区别,所以对我来说很奇怪。