通过AJAX将JQuery变量传递给Php

时间:2015-02-25 20:50:11

标签: php jquery ajax

通过payments.php中href链接中的data-pid将变量传递给JQuery,并使用AJAX将此变量传递给pmntPopup.php,但是该变量未传递

payments.php

<td class="listingTextLeft">
<a href="" data-pid="<?php echo $row[0] ?>" class="pmntDetail"><?php echo $row[20] ?></a>
</td>
<script>
        $( ".pmntDetail" ).click(function( paymentID ) {
            paymentID.preventDefault();
            paymentID.stopPropagation();
            var pmntid = $(this).data("pid");
            console.log("ID: ", pmntid);
            $.ajax({
                type: "POST",
                url: "pmntPopup.php",
                data: {pmntid : pmntid },
                success:function(data) {
                    console.log(pmntid);
                    $("#pmntDetailPopup").modal({position: ["5%"]});
                }
            });
        });
</script>

两个实例中的控制台日志都显示了pmntid的正确值,但是当我尝试使用POST在pmntPopup.php中检索它时,我只是收到“付款未携带”消息。

pmntPopup.php

<?php
    if(isset($_POST['pmntid'])) {
        $pmntid = $_POST['pmntid'];
    } else {
        echo "Payment Is Not Carried";
    }
?>

我搜索了这个网站,从我能说的这应该有用,我可能错过了一些非常基本的东西或做一些非常愚蠢的事情......或两者兼而有之。

控制台POST输出:

Console POST Output

嗨@Jay,已经从上面的控制台发布了POST输出的图片,如果有任何帮助,下图显示了弹出窗口输出:

Popup Post Output

根据要求,控制台响应输出如下所示: Console response

3 个答案:

答案 0 :(得分:0)

我不确定您使用paymentID变量做了什么,但这应该适合您:

$( ".pmntDetail" ).click(function( ) {
    var pmntid = $(this).data("pid");
    console.log("ID: ", pmntid);
    $.ajax({ ...

答案 1 :(得分:0)

试试这个,ajax调用的响应将设置为成功回调函数的data变量。

<强> payments.php

<td class="listingTextLeft">
<a href="#" data-pid="<?php echo $row[0] ?>" class="pmntDetail"><?php echo $row[20] ?></a>
</td>
<script>
        $( ".pmntDetail" ).click(function( event ) {
            event.preventDefault();
            var pmntid = $(this).data("pid");
            console.log("ID: ", pmntid);
            $.ajax({
                type: "POST",
                url: "/UCM/pmntPopup.php",
                data: {pmntid : pmntid },
                success:function(data) {
                    console.log(data); // YOU WILL RECEIVE THE RESPONSE IN data variable.
                    $("#pmntDetailPopup").modal({position: ["5%"]});
                }
            });
        });
</script>

<强> pmntPopup.php

<?php
    if(isset($_POST['pmntid'])) {
        echo $_POST['pmntid'];
    } else {
        echo "Payment Is Not Carried";
    }
?>

[另外,我已经把文件的完整网址,即。&#34; /UCM/pmntPopup.php"到你的ajax url param]

答案 2 :(得分:0)

试试这个。

<td class="listingTextLeft">
<a href="" data-pid="<?php echo $row[0] ?>" class="pmntDetail"><?php echo $row[20] ?></a>
</td>
<script type="text/javascript">
$( ".pmntDetail" ).click(function(e) {
e.preventDefault();
var pmntid = $(this).data("pid");
console.log("ID: ", pmntid);
var request = $.ajax({
url: "pmntPopup.php",
type: "POST",
data: {pmntid : pmntid},
dataType: "html"
});
request.done(function(msg) {
console.log( msg );
});
request.fail(function(jqXHR, textStatus) {
alert( "Connection error: " + textStatus );
});
});
</script>

<强> pmntPopup.php

<?php
    if(isset($_POST['pmntid'])) {
        $pmntid = $_POST['pmntid'];
         echo $pmntid;
    } else {
        echo "Payment Is Not Carried";
    }
?>

作为替代解决方案,请尝试jQuery帖子

$.post( "pmntPopup.php", {pmntid : pmntid})
.done(function( data ) {
alert( "Data Loaded: " + data );
});