【问题标题】:call parameterised function on dynamic button click in php在 php 中单击动态按钮调用参数化函数
【发布时间】:2016-09-09 05:57:16
【问题描述】:

我想在 PHP 中调用参数化函数。我为此使用 AJAX。

这是我的动态按钮。我需要将$sub_id 传递给delet(sub_id) 函数并在那里执行一些SQL。

echo "<td><input type='submit' name='disable' value='Disable' onClick='delet($sub_id);'/></td>"; 

到目前为止,这是我的脚本:

<script>
function delet(sub_id) {
    alert("sub ID = " + sub_id);
    jQuery.ajax({
        type: 'GET',
        url: '/my_page',
        data: {
            ID: sub_id
        }
    }).done(function(msg) {
        alert("Data Saved: " + msg);
    });
}
</script>

这是 PHP 函数:

function delet($ID){
    echo $ID;
    //do sql stuff...
}

所有代码都在一个文件中,我在 wordpress 默认模板 swentysixteen 中执行此操作。所以我的页面没有 .php 扩展名。

当我点击动态按钮时,我在 ajax 的 url 参数中收到 404 错误。当我看到控制台时,url 链接似乎是正确的。

请帮助我解决这个问题。谢谢。

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    首先,不要在你的脑海中将JS代码和PHP代码合二为一。

    请记住,JS 代码是在服务器通过 PHP 提供的浏览器上执行的。 PHP 代码在服务器端执行并将 HTML 代码作为输出提供给客户端(浏览器)。所以 JS 变量和 PHP 变量没有任何直接或间接的关系。

    为了您的解决方案,

    您已通过 ajax 使用 GET 传递 ID 参数。所以在 SErver 端,您将在$_GET 变量中获得传递的数据,因此 ID 将通过$_GET['ID'] 获得

    function delete($ID){
       echo $ID;
       //do sql stuff...
    }
    if(isset($_GET['action']) && $_GET['action']=="delete")
    {
        if(isset($_GET['ID']) && !empty($_GET['ID']))
        {
           delete($_GET['ID']);
           echo "deleted successfully";
        }
        else
        {
           echo "ID not passed for delete record";
        }
        die(); // you stop execution of PHP after delete opration here
    }
    

    Javascript 代码

    <script>
    function delet(sub_id) {
        jQuery.ajax({
            type: 'GET',
            url: '/my_page',
            data: {
                action: 'delete',
                ID: sub_id
            }
        }).done(function(msg) {
            alert("Data Saved: " + msg);
        });
    }
    </script>
    

    【讨论】:

    • 谢谢,但要调用参数化函数,我需要使用 AJAX。而且我不知道 ajax 是如何工作的
    • 您的 JS/Ajax 代码看起来不错...但是您可以在 ajax 请求中再传递一个参数以进行操作...
    • ahhh.. 在你的 html 代码中保留&lt;input type="button" 而不是&lt;input type="submit",否则它会提交表单
    • 如果您的所有代码都在同一页面中,则 ajax url 应为空白 url: ''
    • 谢谢,完成了您所说的所有更改,但仍然没有。显示警告框- mywebsite 说:在所有代码下方:(
    猜你喜欢
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    相关资源
    最近更新 更多