[英]How to make an image-button run a PHP script?
什么是創建圖像按鈕以單擊時發送值並運行php腳本(執行mySQL查詢)的最佳實踐? 該按鈕必須是圖像,而不是默認的提交類型。 我已經搜索了幾天,但仍然找不到合適的答案。 我可以使用GET並在頁面上制作一些圖像按鈕(帶有包含值的鏈接的圖像)以重定向到自身,然后我可以使用這些按鈕
if (isset($_GET['variable']))
但我真的不希望用戶看到這些值。 我嘗試創建一個只有一個按鈕的表單,單擊該表單將重新加載頁面,並且可以使用
if (isset($_POST['submit_value'])) {$var = $_POST['submit_value']; }
但我似乎無法做到這一點,至少在按鈕是圖像時無法實現。 因此,如果有人知道一種不錯的方法,請分享。 不必是AJAX,例如頁面重新加載就可以了。 我猜想我需要JavaScript才能做到這一點,但我並不真正了解JavaScript,因此一個可行的示例將是不錯的選擇。
自ANSWER
感謝您的所有回答。 我發現最簡單的工作方式是創建一個具有輸入類型的圖像的表單,該圖像使提交,而輸入類型的hidden攜帶該值。
<form action="some_page.php" method="POST">
<input type="hidden" name="variable" value="50" />
<input type="image" src="image.png" name="submit" />
</form>
在PHP方面,我使用它來獲取價值。
if (isset($_POST['variable'])) { $var = $_POST['variable']; }
這是最適合我的問題的解決方案。 再次感謝大家的迅速答復。
圖像按鈕幾乎是一團糟! :(
我建議使用CSS將背景圖像放入普通的<input type="submit">
。 當用戶提交表單時,這種方式的值將始終可見(例如,在請求中發送)。
例如:
.myImageSubmitButton{
width: 100px;
height: 22px;
background: url(images/submit.png) no-repeat;
border: none;
/** other CSS **/
}
這里的壞事是您必須根據使用的圖像設置寬度和高度...
如果必須為<button>
,則可以將表單重定向到另一個腳本,如下所示:
<form action="somescript.php" method="POST" name="myform">
<input type="submit" name="submit" value="normal submit">
<button name="foo" type="button" value="bar"
onclick="document.myform.action = 'someotherscript.php';
document.myform.submit()">
<img src="someimage.png">
</button>
</form>
或更改隱藏字段,然后將表單發布到同一頁面,如下所示:
<form action="somescript.php" method="POST" name="myform">
<input type="submit" name="submit" value="normal submit">
<input type="hidden" name="action" id="hidden_action" value="normal_action">
<button name="foo" type="button" value="bar"
onclick="document.getElementById('hidden_action').value = 'special_action';
document.myform.submit()">
<img src="someimage.png">
</button>
</form>
您可以制作POST表單,並將圖像用作無需javascript的提交按鈕:
<input type="image" src="myimage.gif" name="submit">
使用圖像上的onclick事件調用提交
<img src="image.jpg" onclick="document.formname.submit();" />
用這樣的圖像制作提交按鈕
<input type="submit" style="background-image:url(image); border:none;
width:10px;height:10px; color:transparent;" value=" " name="submit_value"/>
我認為做到這一點的唯一兩種方法是使用gets(如您所述)或使用其中圖像按鈕是類型為commit的輸入的表單。
我敢肯定,您可以更改提交按鈕的樣式,使其具有背景圖像,如果沒有,請忽略我的無知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.