将变量从表单和 Sweetalert 发布到 PHP?

问题描述 投票:0回答:1

我有以下代码。我需要表单中的变量“$computerID”和变量“hardwareComputerName”。我测试了一些东西,但没有任何效果。变量“$computerID”没有问题。

形式:

<form id="computerRenameForm" action="computerRename" method="post">
    <input type="hidden" name="rename" value="">
    <input type="hidden" name="computerID" value="<?= htmlspecialchars($computer->id) ?>">
</form>
<button onclick="confirmComputerRename()"><i class="bi bi-trash-fill"></i> Umbenennen</button>
                    
<script>
    function confirmComputerRename()
    {
    (async () => {
        const { value: hardwareComputerName } = await Swal.fire({
            html: "Zum Umbenennen muss der Computer online sein.<br>Das Gerät wird neu gestartet.",
            icon: 'warning',
            input: 'text',
            inputAttributes: {maxlength: 15},
            showCancelButton: true,
            confirmButtonText: 'OK',
            confirmButtonColor: '#ff0000',
            cancelButtonText: 'Abbrechen',
            reverseButtons: false
        })
    
        if (hardwareComputerName) {
            document.getElementById("computerRenameForm").submit();
        }
    })()
}
</script>

控制器:

<?php
if (isset($_POST['rename'])) {
    $computerID = $_POST['computerID'];
    $hardwareComputerName = $_POST['hardwareComputerName'];

    var_dump($computerID)."<br>"; // Works
    var_dump($hardwareComputerName); // Works not
}
?>
javascript php html input sweetalert2
1个回答
1
投票

PHP 全局变量

$_POST
包含发布到服务器的所有数据。目前,
hardwareComputerName
只是客户端的一个变量。您需要将其添加到表单中,以便可以将其发布到服务器。只有这样你才能从
$_POST['hardwareComputerName']
读取它。

一种方法:

  1. 向您的表单添加另一个隐藏元素:

    <input type="hidden" name="hardwareComputerName" id="computerName">
    
  2. 在对话框结果之后,将输入值添加到新创建的元素中:

    if (hardwareComputerName) {
        document.getElementById("computerName").value = hardwareComputerName;
        document.getElementById("computerRenameForm").submit();
    }
    

完成:

<form id="computerRenameForm" action="computerRename" method="post">
    <input type="hidden" name="rename" value="">
    <input type="hidden" name="computerID" value="<?= htmlspecialchars($computer->id) ?>">
    <input type="hidden" name="hardwareComputerName" id="computerName">
</form>
<button onclick="confirmComputerRename()"><i class="bi bi-trash-fill"></i> Umbenennen</button>

<script>
    function confirmComputerRename()
    {
    (async () => {
        const { value: hardwareComputerName } = await Swal.fire({
            html: "Zum Umbenennen muss der Computer online sein.<br>Das Gerät wird neu gestartet.",
            icon: 'warning',
            input: 'text',
            inputAttributes: {maxlength: 15},
            showCancelButton: true,
            confirmButtonText: 'OK',
            confirmButtonColor: '#ff0000',
            cancelButtonText: 'Abbrechen',
            reverseButtons: false
        })
    
        if (hardwareComputerName) {
            document.getElementById("computerName").value = hardwareComputerName;
            document.getElementById("computerRenameForm").submit();
        }
    })()
}
</script>
© www.soinside.com 2019 - 2024. All rights reserved.