我正在顯示來自數據庫的圖像,每個圖像都有一個包含表單和提交按鈕的評論框;提交按鈕具有顯示的圖像的名稱。防爆。如果圖像名稱爲flowers.jpg,則提交按鈕的名稱將設置爲flowers.jpg。 (儘管我做了字符串替換,所以在我的代碼中它將被設置爲flowersjpg)名稱被添加到提交按鈕中,沒有任何問題。因爲我有幾張圖片,我想將$ row ['image'](圖片名稱)傳遞給isset()函數的$ _POST []參數,但它不起作用。 - 所有的代碼是一個文檔
$result = mysqli_query($conn, "SELECT * FROM uploads ORDER BY timestamp DESC");
while($row = mysqli_fetch_array($result))
{
// Prints all the photos with a caption
echo "<div class='wrapper' name=".$row['image'].">";
echo "<div class='caption'>";
echo "<h3>".$row['title']."</h3>";
echo "<p class='description'>".$row['description']."</p>";
echo "</div>";
echo "<img src='images/uploads/".$row['image']."'/>";
// name for submit button, the $row['image'] contains the entire image name so certain characters have to be removed
**$name = str_replace(array(".", "-", ":", "'", "/", " "), "", $row['image']);**
// comment box - just a form with a submit
echo "<div class='commentBox'>
<form action='test.php' method='POST'>
<textarea placeholder='Say something nice!' name='comment'></textarea>
// CREATES NAME FOR BUTTON. FOR EACH IMAGE, THE BUTTON HAS THE IMG NAME
**<button type='submit' name='".$name."' value='submit'> post </button>**
</form>
</div>";
echo "</div>";
}
if(isset($_POST["'".$name."'"]))
{
echo '<script type="text/javascript"> alert("isset"); </script>';
}
在當我把這個名字作爲$ _ POST參數純字符串,它工作正常,但是當我把變量,這是行不通的。 $ name變量是一個字符串。
這個工程,但我敢肯定,任何使用的字符串將工作,只要按鈕名稱和$ _POST字符串是相同的。
echo "<button type='submit' name='flowerspng' value='submit'> post </button>";
if(isset($_POST[flowerspng]))
{
echo '<script type="text/javascript"> alert("isset"); </script>';
}
這段代碼另一方面沒有。我知道變量可以在$ _POST參數中傳遞,所以我不明白我的代碼有什麼問題。我的語法不正確?顯然變量沒有被設置,否則警報框會彈出。
echo "<button type='submit' name='".$name."' value='submit'> post </button>";
if(isset($_POST["'".$name."'"]))
{
echo '<script type="text/javascript"> alert("isset"); </script>';
}
我也試過這個,但我不認爲它的工作,因爲沒有引號$名稱附近。
echo "<button type='submit' name=$name value='submit'> post </button>"
if(isset($_POST[$name]))
{
echo '<script type="text/javascript"> alert("isset"); </script>';
}
作爲提示,您的isset檢查中的'$ name'將始終是最後一行的名稱,因爲每次迭代都會覆蓋它。 –
如果發生了這種情況,代碼是否適用於數據庫中的最後一幅圖像?我點擊了所有按鈕,並且警報框根本不會彈出。我對PHP有點新,所以對於問一個愚蠢的問題表示抱歉。 – WhiteVeils
它會,但你有'$ name'周圍引用不應該在那裏(即你最後一次嘗試是正確的,但你可能沒有提交最後一項)。基本上,$ _POST鍵是'charlie'(作爲一個例子),但是引用它可以讓它查找鍵「charlie'',這是一個不同的字符串。 –