簡體   English   中英

PHP-isset for循環無法檢查未知數量的按鈕

[英]PHP-isset for loop not working to check unknown number of buttons

在html正文中的此.php文件中,我生成一個無序列表,其中包含未知數量的項目:$ num_files(目錄中每個文件的1個列表項目)。

最后得到目錄中無序文件列表,每個文件都有一個“查看”按鈕。

當用戶單擊特定文件(特定列表項)的查看按鈕時,它應該重定向。

無論我按哪個按鈕,都不會發生。

[some stuff up here]

<ul class="center">
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="POST">
<?php
if($num_files==0) exit;
$i = 0;
$ii=0;
while ($i < $num_files) {
    $ii=$i+2;
    echo "<li> $user_filenames[$ii] </li>";
    $id = trim("view".$i);
    echo '<input type="submit" id=$id name=$id value="view">';
    $i=$i+1;
}?>
</form>
</ul>

<?php
    $x=0;
    $xx=0;
    while ($x < $num_files) {
        $var = trim("view".$x);
        if(isset($_POST[$var])){
            $xx = $x+2;
            $_SESSION['current_file'] = $user_filenames[$xx];
            header("Location: view_file.php");
            exit;
        }
        $x=$x+1;
    }
?>
</body>
</html>

值得注意的是,當我將代碼更改為以下代碼時,當我按下任意按鈕時,它將成功重定向(但僅使用預定的$ user_filenames [x]元素進行重定向,並且無法區分按鈕)。

<ul class="center">
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="POST">
<?php
if($num_files==0) exit;
$i = 0;
$ii=0;
while ($i < $num_files) {
    $ii=$i+2;
    echo "<li> $user_filenames[$ii] </li>";
    echo '<input type="submit" id="view" name="view" value="view">';
    $i=$i+1;
}?>
</form>
</ul>

<?php
        if(isset($_POST['view'])){
            $_SESSION['current_file'] = $user_filenames[2];
            header("Location: view_file.php");
            exit;
        }
    }
?>
</body>
</html>

當您查看源代碼時,此名稱和id屬性正確嗎?

input type="submit" id=$id name=$id value="view"

你有這個:

echo '<input type="submit" id=$id name=$id value="view">';

而不是這個(您說的有效)

echo '<input type="submit" id="view" name="view" value="view">';

這是有道理的,因為根據您的代碼判斷,上層代碼應該變成:

<input type="submit" id=someid name=someid value="view"

那是無效的html。 您需要確保生成的代碼也包含引號。

我建議您也嘗試使用Firefox的“ firebug”。 使用它,您可能會注意到什錦的html,而無需考慮它。

這將是解決問題的一種變體:

$id = "'". trim("view".$i)."'";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM