我正在尝试通过AJAX调用在php文件中设置会话变量。但是我收到未定义的索引错误。
这是jquery代码:
$('.selectcpno li').click(function(){
//Get the value
var value = $(this).data("value");
//Put the retrieved value into the hidden input
$('input[name=cpnoselected]').val(value);
$.ajax({
type: "post",
url: "../web/cpnoselected.php",
dataType: "text",
data:"{'cpno':'" +value+ "'}",
success: function( data ){
alert("hellosuccess");
document.getElementById("cpno").innerHTML=data;
},
error: function( jqXhr, textStatus, errorThrown ){
alert(value);
console.log( errorThrown );
console.log( jqXhr );
console.log(textStatus);
}
});
});
这是我在php文件中所拥有的:
<?php
include("../config/config.php");
include("../inc/functions.php");
$cpnoselected= $_POST['cpno'];
$_SESSION['cpno']=$cpnoselected;
echo $cpnoselected;
?>
当我运行它时,我得到未定义的索引:C:/...../ cpnoselected.php中的cpno
请帮助解决该问题
答案 0 :(得分:7)
更改
data:"{'cpno':'" +value+ "'}",// it needs to be object not string
收件人
data:{'cpno':value}, //now its object
答案 1 :(得分:2)
您正在使ajax请求正确,但是您发布的数据格式不正确。 您需要将该数据作为对象发送,但是您将其作为字符串值发送,例如您的代码:data:“ {'cpno':'” + value +“'}”
只需从中删除双引号
data:{'cpno':value}
答案 2 :(得分:1)
使用isset示例
if (isset($_POST['cpno'])) {
echo "This var is set so I will print.";
}
答案 3 :(得分:0)
您收到此错误undefined index: cpno in C:/...../cpnoselected.php
,因为您将数据作为字符串而不是作为JSON发送。
进行更改
$('.selectcpno li').click(function(){
//Get the value
var value = $(this).data("value");
//Put the retrieved value into the hidden input
$('input[name=cpnoselected]').val(value);
$.ajax({
type: "post",
url: "../web/cpnoselected.php",
dataType: "json",
data:{'cpno':value},
success: function( data ){
alert("hellosuccess");
document.getElementById("cpno").innerHTML=data;
},
error: function( jqXhr, textStatus, errorThrown ){
alert(value);
console.log( errorThrown );
console.log( jqXhr );
console.log(textStatus);
}
});
});