我正在尝试使用ajax在帖子中发送一个数组到我的文件“ addServicesRequest.php”,然后它将数据一一插入数据库中。
我已经进行了多次测试,但由于未显示警报成功“ Ok”,所以似乎没有发送Ajax。
请问有人知道为什么它不起作用吗?
function totalBeforeSubmit(){
var totalService = $('#totalPriceService').val();
var globalTotal = 0;
var getI = [];
for(var i = 0; i <= totalService; i++){
if($('#'+i).is(":checked")){
var total = $('#'+i).val();
globalTotal = parseInt(globalTotal )+ parseInt(total);
getI[i] = $('#'+i).closest('.form-control').find('.iHidden').html();
}
}
//PROBLEM HERE:
$('.calculatePrice').click(function(){
var jsonString = JSON.stringify(getI);
$.ajax({
type: "POST",
url: "addServicesRequest.php",
data: {data : getI},
cache: false,
success: function(){
alert("OK");
}
});
});
alert(globalTotal);
if(globalTotal == 0){
window.location.replace('addServices.php');
alert('Veuillez selectionner un ou des services avant de valider');
return false;
} else {
return true;
}
}
在addServicesRequest.php中:
<?php
require_once('connectDatabase.php');
$data = json_decode(stripslashes($_POST['data']));
foreach($data as $d){
$insert = $bdd->prepare('INSERT INTO chosen_services (id_service) VALUES (:id_service)');
$insert->execute(array(
"id_service" => $d
));
}
header('Location: addServices.php');
?>
非常感谢!我真的为此苦苦挣扎
答案 0 :(得分:0)
使用 join 函数代替JSON.strigify。
getI.join(',')
它将所有数组值都用逗号分隔的字符串。 然后将其传递给ajax请求
在php中使用“ explode” 再次转换数组
explode(',', $_POST['data'])
我希望它能工作.. !!
答案 1 :(得分:0)
使用序列化的json
var jsonString = JSON.stringify(getI);
$.ajax({
type: "POST",
url: "addServicesRequest.php",
data: {data : jsonString},
cache: false,
success: function(){
alert("OK");
}
});
将true设置为第二个参数以获取数组而不是stdClass
$data = json_decode($_POST['data'], true);
$ data可以为false或数组,请对其进行验证