簡體   English   中英

如何使圖像按鈕運行PHP腳本?

[英]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>

請注意:如果用戶願意,他們可以使用Firebug等檢索值。 這無法更改。

另外,HTML按鈕可以是圖像。 看到這個

或者在onclick圖像上使用XMLhttprequest。 XMLHTTPRequest有許多教程。 例如這個

您可以制作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.

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