首页 > 解决方案 > $.post() 无法传递数据

问题描述

我想使用 jQuery $.post() 方法将一些数据作为变量传递给 PHP 文件,然后在单击按钮后将结果显示在 div 中。但是数据没有在 PHP 文件中检索到。

<script>
    $(document).ready(function () {
        $("button").click(function () {
            $.post("add.php", {
                fname: 'Billy'
            }, function () {
                $('#topic').load('add.php');
            });
        });
    });
</script>
</head>

<body>
    <br>
    <div class="container">
        <?php
            echo "Welcome ".get('Name')." !";
        ?>
        <div style="float: right">
            <?php
                echo "<a href='logout.php'> Log Out </a>";
            ?>
        </div>
        <br>
        <button>Add Topic</button><br>
        <div id='topic'></div>

//PHP文件:

<?php
    session_start();
    echo "".$_POST['fname']."";
    //if(isset($_POST['fname']))
    //{
        //$fname=$_POST['fname'];
        //echo " ".$fname." topic added!";
    //}
?>

注意:未定义索引:第 3 行 C:\xampp\htdocs\forum\add.php 中的 fname

标签: phpjqueryajax

解决方案


我不太熟悉该load功能,但在我看来,您正在加倍努力从同一资源中获取。

您可以执行以下操作:

$.ajax({
   type: "POST",
   url: 'add.php',
   data: {fname:"Billy"},
   success: function(response){
        $( "#topic" ).html(response);
        // or .text or whichever replacement method you need/works best
   },
});

add.php

if ( isset($_POST['fname'] ){
    echo "Topic " . $_POST['fname'] . " added!";
} else {
    echo "Could not find 'fname'!";
}

推荐阅读