这是我的ajax脚本:
var cid = $(this).data('cid');
var sendData = { canidtoset: cid };
$.ajax({
url: '/functions/cv_showinformation.php',
type: 'post',
data: sendData,
dataType: 'json',
success: function(data) {
$('#can-viewer .cv--informationtab .infotab--inner')
.load("/functions/cv_showinformation.php");
}
});
它从被点击的元素中获取名为data-cid的属性的值。此值应发送到PHP脚本,该脚本在单击元素后包含在div中。 PHP脚本:
<?php
if(isset($_POST['canidtoset'])){
$canid = $_POST['canidtoset'];
echo $canid;
} else {
echo "Something went wrong";
}
?>
最后它应该显示div中属性的值。但它甚至没有包括在内,所以我认为数据没有设置。 hella是错误的地方?
答案 0 :(得分:2)
如果你想使用.load(),那么我们可以这样做以避免错误
var cid = $(this).data('cid');
var sendData = { canidtoset: cid };
$.ajax({
url: '/functions/cv_showinformation.php',
type: 'post',
data: sendData,
dataType: 'json',
success: function(data) {
$('#can-viewer').load('test.php?canidtoset='+ data);
}
});
<div id='can-viewer'></div>
/functions/cv_showinformation.php:
if(isset($_REQUEST['canidtoset'])){
$canid = $_REQUEST['canidtoset'];
echo $canid;
} else {
echo "Something went wrong";
}
答案 1 :(得分:1)
dataType: json
表示来自您服务器的数据应该是json(您正在发送纯文本)。
第二个问题是您的.ajax
电话应该是您所需要的。 .load
调用正在完成相同的事情而没有传递的值。
最简单的解决方案应该是将您的dataType更改为html
var cid = $(this).data('cid');
var sendData = { canidtoset: cid }
$.ajax({
url: '/functions/cv_showinformation.php',
type: 'post',
data: sendData,
dataType: 'html',
success: function(data) {
$('#can-viewer .cv--informationtab .infotab--inner').html(data);
}
});
或者,您也可以将帖子数据传递给.load
。只需确保用它替换.ajax
调用,而不是将其嵌套在成功回调中。
$('#can-viewer .cv--informationtab .infotab--inner')
.load("/functions/cv_showinformation.php", {
canidtoset: $(this).data('cid')
});