2013-02-07 152 views
1

我一直在創建一個網站,我的用戶可以評價已經上傳的圖像。目前我使用單選按鈕和提交按鈕來獲取用戶評分並將其保存在系統中。我想改變這一點,以便代碼使用圖片點擊來獲得用戶評分。到目前爲止,我有以下代碼,但它只適用於一個圖像按鈕。有什麼方法可以根據點擊的圖像來改變這個結果嗎?PHP多圖像按鈕提交表格

代碼:

HTML

<form> 
<input 
     type="image" 
     name="flag_submit" 
     src="img/Flag.png" 
     onmouseover="this.src='img/Flag_Click.png'" 
     onmouseout="this.src='img/Flag.png'" 
     height="30" 
     width="30" 
     /> 
</form> 

PHP

if (isset($_POST['flag_submit_x'])) 
{ 
    //Do process of rating. 
} 

有,我可以創建多個圖像按鈕,並在PHP代碼檢測一下圖像按鈕任何方式已被按下?

+0

更改名稱到一個數組'名稱= 「flag_submit [1]」'。爲每個圖像分配一個不同的值,然後獲得它。 – Peon

+0

什麼是PHP代碼註冊此? –

+0

if(isset($ _ POST ['flag_submit'] [1]))爲特定情況,由Dainis提供 –

回答

3
  1. 將名稱更改爲數組name="flag_submit[1]"。爲每個圖像分配一個不同的值,然後獲得它。

  2. 在php端以數組的形式閱讀它:if (isset($_POST['flag_submit'][1]))

或者更好的是,環THROU如果$_POST['flag_submit'],發現所有的值:

foreach ($_POST['flag_submit'] as $value) { 
    echo $value . ' has been clicked.'; 
} 

<form method="post"> 
<input type="image" name="rateButton[1]" src="img/Rate1.png" height="40" width="40" value="1"/> T 
<input type="image" name="rateButton[2]" src="img/Rate1.png" height="40" width="40" value="1"/> T 
<input type="image" name="rateButton[3]" src="img/Rate1.png" height="40" width="40" value="1"/> T 
<input type="image" name="rateButton[4]" src="img/Rate1.png" height="40" width="40" value="1"/> T 
</form> 
<pre> 
<?php 
    if (isset($_POST['rateButton'])) { 
     foreach ($_POST['rateButton'] as $key => $value) { 
      echo 'Image number '.$key.' was clicked.'; 
     } 
    } 
?> 

在你的情況,你不關心,它發出什麼樣的價值,所有你需要關心它是用來提交表單的關鍵,因爲總是隻有一個鍵集。

+0

我試過這個,它似乎沒有工作。我將[1] - [10]添加到圖像按鈕的名稱上,並使用if(isset($ _ POST ['flag_submit'] [1]))echo「Number 1」。當我點擊第一張圖片時,文字編號1不顯示? –

+0

你設置了一個'onclick =「document.form.submit();'event? – Peon

+0

我很抱歉我在按鈕名稱中輸入了一個錯字,它的工作效果很好,謝謝你的幫助 –

1

這裏有可能是幫助一招:

我創建窗體的HTML頁面:

CODE

<html><body><form method="post" action="show_post.php"> 
<input type="image" name="stamp[1134118800]" src="redstar.gif" value="red"> 
<input type="image" name="stamp[1134140400]" src="greenstar.gif" value="green"> 
</form></body></html> 

表單提交的腳本show_post。PHP,寫着:

CODE

<?php 
print '<html><body><pre>'; 

print_r ($_POST); 

print '</pre></body></html>'; 
?> 

當我點擊第一個圖像,我得到:

Array 
(
    [stamp] => Array 
     (
      [1134118800] => 21 
     ) 

) 

當我點擊第二圖像上,我得到:

Array 
(
    [stamp] => Array 
     (
      [1134140400] => 15 
     ) 

) 

這適用於Opera,IE和Mozilla。

+0

我並不完全明白這是如何工作的。什麼值[1134118800]和[1134140400]以及你從哪裏得到它們。爲什麼他們每個人的結果是21和15? –

0

這可能幫助你

<?php 
if($_POST['button']) 
{ 
    echo "you have pressed button ".$_POST['button']; 
} 
?> 
<style> 
    input.overridecss { 
    background-color: transparent; 
    border: 0px; 
    background-position: center; 
    background-repeat: no-repeat; 
    background-image: url(http://i49.tinypic.com/rm2w0i.png); 
} 
</style> 
<form method="POST"> 
    <input type="submit" name="button" value="1" class="overridecss"/> 
    <input type="submit" name="button" value="2" class="overridecss"/> 
    <input type="submit" name="button" value="3" class="overridecss"/> 
    <input type="submit" name="button" value="4" class="overridecss"/> 
    <input type="submit" name="button" value="5" class="overridecss"/> 
</form> 
+0

如果我已經有多個其他輸入按鈕在相同的形式,但名稱不同,這將工作嗎? –

+0

取決於情況..你在做什麼形式? –

+0

你是什麼意思? –

1

第一個代碼工作正常,我的 更改名稱爲數組名= 「flag_submit [1]」。爲每個圖像分配一個不同的值,然後獲得它。

閱讀它作爲在PHP側的數組:

if (isset($_POST['flag_submit'][1]))