我尝试将数据发送到我的PHP脚本,但我想我想念一些。
首先,
function deleteData2()
{
var artistIds = new Array();
$(".p16 input:checked").each(function(){
artistIds.push($(this).attr('id'));
});
$.post('/json/crewonly/deleteDataAjax2', JSON.stringify({'artistIds': artistIds}),function(response){
if(response=='ok')
alert(artistIds);
});
}
上面的代码是我的js文件。我在var artistIds中有artistIds。我的目标是将此数组发送到我的php脚本。为此,我将其设为json,我的意思是使用JSON.stringify对其进行编码
然后在php方面,我使用下面的代码。但是,$ array始终为null。可能是什么原因?
public function deleteDataAjax2() {
$array=json_decode($_POST['artistIds']);
if (isset($array))
$this->sendJSONResponse('ok');
}
答案 0 :(得分:4)
您将数据作为JSON的原始字符串传递,但您的PHP正在尝试通过将数据解析为application/x-www-form-urlencoded
然后查看artistIds
密钥来查找该字符串。
假设数组是平的:忘记JSON。你不需要它。
$.post('/json/crewonly/deleteDataAjax2', {'artistIds': artistIds},function(response){
和
$array = $_POST['artistIds'];
如果阵列不平坦,那么:
$.post('/json/crewonly/deleteDataAjax2',
{ json: JSON.stringify({'artistIds': artistIds}) },
function(response){
并且(添加了适当的错误检查):
$json = $_POST['json'];
$data = json_decode($json);
$artists = $data['artistIds'];