2012-01-13 106 views
0

我正在製作一個facemash模擬,我遇到了一個問題。當我投第二張照片時,無論如何,獲勝者是第一個。問題在哪裏?網站:http:http://facemash123.shimansky.ru投票的問題

<form METHOD=POST ACTION="rate.php"> 
<table width="auto" align="center"> 
    <tr align="center" width="auto" valign="top"> 
     <td><img src="images/<?=$images[0]->filename?>" /></td> 
     <td><img src="images/<?=$images[1]->filename?>" /></td> 
    </tr> 
    <tr> 
     <td><input type="submit" name="winner" value="Vote"></td> 
     <td><input type="submit" name="winner" value="Vote"><td> 

     <input type="hidden" name="first" value="<?=$images[0]->image_id?>"> 
     <input type="hidden" name="second" value="<?=$images[1]->image_id?>"> 
    </tr> 
    <tr> 
     <td><center>Wins: <?=$images[0]->wins?>, Fails: <?=$images[0]->losses?></center></td> 
     <td><center>Wins: <?=$images[1]->wins?>, Fails: <?=$images[1]->losses?></center></td> 
    </tr> 
</table> 
</form> 

rate.php http://jsfiddle.net/Rg7vf/ 的index.php http://jsfiddle.net/ad3PM/

在此先感謝!

+1

誰在紅色毛衣那個小妞也就是爲什麼,如果你投票給它增加失敗的圖像:)而不是勝利 – 2012-01-13 14:28:59

+0

@bobek不是我問的問題... – 2012-01-13 14:32:06

回答

6

您的兩個提交按鈕提交相同的值,並且無法區分這兩個圖像。

也許代碼更改爲:

<td><input type="submit" name="winner" value="Vote for Img #1"></td> 
    <td><input type="submit" name="winner" value="Vote for Img #2"><td> 

,然後在投票處理代碼:

switch($_POST['winner']) { 
    case "Vote for Img #1": 
     $vote_id = $_POST['first']; 
     break; 
    case "Vote for Img #2": 
     $vote_id = $_POST['second']; 
     break; 
    default: 
     die("VOTER FRAUD! CALL THE FEC!"); 
} 
+0

謝謝,但我應該在哪裏粘貼處理代碼? – 2012-01-13 14:35:36

+3

也可以使用兩個不同的'name',只發送提交的名稱。測試「價值」可能會被i18n弄亂。 – Damien 2012-01-13 14:35:43

+0

@Marc我真的不明白在哪裏把這個代碼=( – 2012-01-13 16:21:38