使用ajax将信息发送到PHP文件并使用.load()将此文件加载到div?

时间:2017-06-24 21:40:30

标签: php jquery html ajax

这是我的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是错误的地方?

2 个答案:

答案 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') 
    });