我在没有使用表单的情况下将值从ajax传递给php时有一个“Undefined index”。
以下是我的代码:
function sendDatasToPhp() {
var id = <? php echo json_encode($id); ?> ;
var otherId = <? php echo json_encode($_SESSION['id']); ?> ;
$.ajax({
method: "POST",
url: "send_data_to_php.php",
data: "id=" + id + "&otherId=" + otherId,
cache: false,
success: function() {
alert("Datas are being transfered");
}
})
}
<div>
<label class="send_datas" onclick="sendDatasToPhp();">Send datas to php</label>
</div>
假设$id
已初始化且$_SESSION['id']
已有值。问题是一旦转移到php文件,两个索引是未定义的。我该如何解决这些问题?
答案 0 :(得分:0)
在你的html中添加隐藏的输入:
<input type="hidden" id="id" value="<?= $id; ?>" >
<input type="hidden" id="otherId" value="<?= $_SESSION['id']; ?>" >
然后你的脚本需要像:
function sendDatasToPhp() {
var id = $('$id').val();
var otherId = $('$otherId').val();
var data = {
id: id,
otherId:, otherId
};
$.ajax({
method: "POST",
url: "send_data_to_php.php",
data: data,
cache: false,
success: function() {
alert("Datas are being transfered");
}
});
}
答案 1 :(得分:0)
我使用了GET
方法而不是POST
,我使其成功。
答案 2 :(得分:-1)
什么是json_encode?这不需要。
将method
更改为type
在$_SESSION['id']
之后有一个右括号
success函数有一个输入参数success: function(data) { alert(data); }
答案 3 :(得分:-1)
$ .ajax函数中的数据属性应采用以下格式。
data: { id: id, otherId: otherID },
编辑:你能打印出你得到的确切错误吗?