如何使用AJAX将数组发送到PHP文件,以便将其添加到mySQL?
我正在调用SendArray函数,我希望创建一个数组并将其发送到我的PHP文件中。我希望PHP提取数据并将值输入mySQL数据库的列中如何使用AJAX将数组发送到PHP文件,以便将其添加到mySQL?,php,mysql,arrays,ajax,cordova,Php,Mysql,Arrays,Ajax,Cordova,我正在调用SendArray函数,我希望创建一个数组并将其发送到我的PHP文件中。我希望PHP提取数据并将值输入mySQL数据库的列中 function sendArray(){ var name = "John"; var address = "UK" var sendInfo = { Name: name, Address: address,
function sendArray(){
var name = "John";
var address = "UK"
var sendInfo = {
Name: name,
Address: address,
};
$.ajax({
url: "http://server/~name/folder/insertOffer.php",
type: "POST",
dataType: "json",
data: {data: sendInfo},
})
.done(function(msg) {
if (msg) {
alert("Somebody" + name + " was added in list !");
location.reload(true);
} else {
alert("Cannot add to list !");
}
});
}
<?php
include("mysqlconnect.php");
$sendInfo = file_get_contents('php://input');
$data = [];
$Name = $_POST['data']['name'];
$Address = $_POST['data']['Address'];
mysqli_query($con,"INSERT INTO offerSelected (Id, Url)
VALUES ('$name', '$address')");
?>
函数sendArray(){
var name=“John”;
var address=“英国”
var sendInfo={
姓名:姓名,,
地址:地址:,
};
$.ajax({
url:“http://server/~name/folder/insertOffer.php“,
类型:“POST”,
数据类型:“json”,
数据:{data:sendInfo},
})
.done(函数(msg){
如果(味精){
警报(“列表中添加了某人”+姓名+);
位置。重新加载(true);
}否则{
警报(“无法添加到列表!”);
}
});
}
您的JS有一个问题:
var sendInfo = {
Name: name,
Address: address,
};
在某些浏览器中,尾随逗号可能会导致问题。从地址
后删除逗号
发出HTTP请求时,您可以:
- 发送JSON或
- 发送表单编码数据
$sendInfo = file_get_contents('php://input');
拆下上面的线。您正在发送表单编码数据。手动解析不需要获取原始输入。PHP将自动解析表单编码数据并将其放入$\u POST
$data = [];
拆下上面的线。您从不使用$data
$Name = $_POST['data']['name'];
您在JavaScript中调用了属性Name
,而不是Name
。保持一致。改为:
$Name = $_POST['data']['Name'];
然后:
这本身应该可以很好地工作(考虑到您拥有的JavaScript)
您调用了变量$Name
和$Address
。不要将它们更改为<代码> $No.<代码>和<代码> $地址<代码>在程序的中间。
但是,请注意,一旦您解决了这个问题,您仍然容易受到需要保护自己的的攻击 您得到的错误是什么我觉得我的javaScript没有正确激活我的警报(“某人”+name+“已添加到列表中!”)从未运行过。我正在cordova应用程序中运行此脚本,因此很难查看错误。不过,函数的调用是正确的。@MichaelO'Neill-然后你需要学习如何更好地使用cordova的调试工具,以了解实际发生的情况。我发现你的代码有六个问题,没有其他人向我发问。
$Address = $_POST['data']['Address'];
mysqli_query($con,"INSERT INTO offerSelected (Id, Url) VALUES ('$name', '$address')");