2012-11-20 76 views
0

我想在PHP中做一個簡單的投票腳本並需要幫助。我遇到的問題是我創建了一個帶有兩個按鈕的窗體,喜歡和不喜歡,它們對應於if else語句。PHP if if語句來自兩個按鈕

如果類似按鈕被點擊做更新,否則點擊不喜歡按鈕做更新。

這裏是我到目前爲止的代碼,有更多的上面,但沒有必要我的問題:

while($row = $q2->fetch()) 
     { 
     $up_vote= $row['up_votes']; /*Current Up Votes*/ 
     $down_vote= $row['down_votes']; /* Current Down Votes*/ 
      echo '<form method="post" action="">'; 
      echo '<input type="button" id="up_vote" name="up_vote" value="Like" /> OR'; 
      echo '<input type="button" id="down_vote" name="down_vote" value="Dislike" />'; 
      echo '</form>'; 
      echo round($row['rating'], 0); 
      echo '% of voters Liked this'; 
      } 


     $up_votes = $up_vote +1;/*$up_vote referes to original # of up_votes, $up_votes adds 1 to the number of votes*/ 
     $down_votes = $down_vote +1;/*$down_vote referes to original # of down_votes, $up_votes adds 1 to the number of votes*/ 

    if ($something);/*upvote clicked*/ 
    { 
     $vote_update = "UPDATE images 
         SET up_votes:up_votes 
         WHERE vote_item_id: vote_item_id"; 

     $q3 = $conn-> prepare($vote_update); 
     $q3->execute(array(':up_votes'=>$up_votes, /*$up_vote referes to original # of up_votes, $up_votes adds 1 to the number of votes*/ 
          ':vote_item_id'=>$current_vote_item_id)); 

     /* ALSO create INSERT INTO votes_done to track the user vote*/ 
    $conn = null; 
    }  
    else ($something2);/*down vote clicked*/ 
    { 
     $vote_update = "UPDATE images 
         SET down_votes:down_votes 
         WHERE vote_item_id: vote_item_id"; 

     $q3 = $conn-> prepare($vote_update); 
     $q3->execute(array(':down_votes'=>$down_votes, /*$down_vote referes to original # of down_votes, $up_votes adds 1 to the number of votes*/ 
          ':vote_item_id'=>$current_vote_item_id)); 
     /* ALSO create INSERT INTO votes_done to track the user vote*/ 
    } 

應該採取什麼if和else語句是什麼樣子?我不知道該怎麼做,不能有兩個提交,我應該有兩種不同的形式,每個按鈕一個?無論哪種方式,我怎麼能說,如果像點擊去如果和運行代碼,或者如果不喜歡被點擊去別的和運行代碼?

感謝

回答

1

語法錯誤,你可以給這兩個按鈕的名稱相同,但不同的價值觀。

echo '<form method="post" action="___URL OF YOUR PAGE___">'; 
echo '<input type="submit" id="up_vote" name="vote" value="Like" /> OR'; 
echo '<input type="submit" id="down_vote" name="vote" value="Dislike" />'; 
echo '</form>' 
... 
if($_POST['vote'] == "Like") { 
... 
} else if ($_POST['vote'] == "Dislike") { 
... 
} 

注意,我改變了inputtypesubmit而不是button。這會導致數據發送到頁面(除非您開始添加JavaScript,否則button不會執行任何操作)。

您可以在這些答案閱讀更多關於這一點:

https://stackoverflow.com/a/6129301/1451957

html button v.s. html submit?

+0

這是有道理的,謝謝。 – Owen

0

PHP是服務器端,而要控制在客戶端觸發的事件(一個用戶點擊一個按鈕,或其他)。

使用Javascript/jQuery的是客戶端,也可以控制和觸發調用PHP腳本,將做查詢事件。您可以使用elseif(){

0

這聽起來像這樣的情況:使用JavaScript會比較有用,但如果你真的想用PHP,你可以使用兩個單獨的形式或更改按鈕看起來像按鈕和鏈接URL添加參數。

另外:你有一些語法錯誤。舉例:你不應該的,如果/ elseif的條件,else()應該是elseif(),你想什麼時候增加$up_votes$down_votes

0

爲什麼dont't您添加使用兩個不同的變量名後把分號'onclick'事件給每個喜歡和不喜歡的按鈕,並執行不同的腳本?拋開