javascript - 如何在 UI 对话框中使用 PHP_SELF?

标签 javascript php jquery jquery-ui-dialog

所以我花了几个小时寻找针对我的问题的特定内容,但我似乎找不到任何内容。

我正在创建一个小型 CMS。我的问题是我不知道如何在 UI 对话框中创建提交的表单以在 UI 对话框内执行 PHP_SELF 的操作。我有一个可以通过单选按钮选择的用户列表。有一个删除按钮,附加了一些 JavaScript:

$('#delete_user').on('click', function(e) {
    if (id != null ) {
        var url = "delete_user.php?id=" + id;
        $('#dialog-placeholder').dialog().load(url);
        $('.ui-dialog :button').blur();
    }
    e.preventDefault();
    return false;
});

现在,我的问题是我已经进入了 UI 对话框,在那里我获得了随 url 一起发送的 ID,但我不知道如何发送表单并仍然将其保留在带有下面 PHP 的对话框中:

    <?php 
if ((isset($_GET['id'])) && is_numeric($_GET['id'])) {
    $id = $_GET['id'];
} elseif ((isset($_POST['id'])) && is_numeric($_POST['id'])) {
    $id = $_POST['id'];
} else {
    echo "<p>An error has occurred. Please try again.</p>";
    echo "<a href=\"#\" class=\"close_dialog\">Close</a>";
$jQuery_close = <<<msg
<script>
    $('.close_dialog').on('click', function(){
        location.reload();
        dialog("close");
    });
</script>
msg;

echo $jQuery_close;
    exit();
}
require('includes/db_con.php'); //making a connection to the database
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($_POST['sure'] == 'Yes') {
        $q = "DELETE FROM users WHERE user_id=$id LIMIT 1";
        $r = @mysqli_query($dbc, $q);

        if (mysqli_affected_rows($dbc) == 1) {
            echo "<p>The user has been deleted</p>";
        } else {
            echo "<p>The user could not be deleted due to system error. Please try again.</p>";
        }
    } else {
        echo "The user has NOT been deleted!";
    }
} else {
    $q = "SELECT email, CONCAT(firstname, ' ',lastname) AS name FROM users WHERE user_id='$id'";
    $r = @mysqli_query($dbc, $q);
    $num = mysqli_num_rows($r);

    if ($num = 1) {
        while ($row = mysqli_fetch_array($r, MYSQL_ASSOC)) {
            echo "<p>Are you sure you want to delete this user?</p>";
            echo $row['email'] . '<br />';
            echo $row['name'];
        }

        echo '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">
        <input type="HIDDEN" name="id" value="' . $id .'" />
        <input type="submit" name="sure" value="Yes" />
        <input type="submit" name="sure" value="No" />
        </form>';   
    } else {
        echo "This page has been accessed in error";
    }
} 
mysqli_close($dbc);
?>

当在表单中按"is"或“否”时,直接进入新页面。

我的问题是,如何触发 php 并在对话框中发送表单?

最佳答案

将您的 e.preventDefault() 放在删除点击处理程序的开头,而不是放在当前的末尾,它应该是这样的:

$('#delete_user').on('click', function(e) {
    e.preventDefault();
    if (id != null ) {
        var url = "delete_user.php?id=" + id;
        $('#dialog-placeholder').dialog().load(url);
        $('.ui-dialog :button').blur();
    }
    return false;
 });

关于javascript - 如何在 UI 对话框中使用 PHP_SELF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821515/

相关文章:

javascript - Highcharts/Highstock 滚动条问题

javascript - 如何使用 JQuery 将新的 TR 插入 HTML 表格的中间部分?

php - Laravel 检查它是否有来自模型的数据

javascript - Jquery DataTable 列宽问题

PHP 链接到个人资料页面

php - Zend Framework 2 模型中的数据库访问

javascript - 如何在 Kendo 网格中没有事件的情况下知道哪一行处于编辑模式

android - 引导模式 : Android browser

javascript - jQuery 不响应 AJAX 加载的内容

javascript - 密码匹配确认