2013-02-06 98 views
0

我一直在創建一個網站,允許用戶對其他用戶上傳的圖片進行評分。我的代碼工作得很好。用戶會看到圖像,一個標記圖像的按鈕,10個單選按鈕來選擇他們的評分和一個提交按鈕(都在同一個表單中)。PHP RadioButton提交表格

我的問題是,我想刪除提交按鈕,並在用戶單擊單選按鈕時處理表單。這個問題是標誌按鈕(圖像按鈕)也提交表單。我的代碼如下:

HTML

<form name="ratebox" action="Box.php?bid=<?php echo $boxId ?>" method="post"> 
    <table style="margin: 0 auto;"> 
     <tr> 
      <td colspan="2"><img src="img/boxes/<?php echo $boxId ?>.png" title="<?php echo $boxName ?>" height="350" width="350"></td> 
     </tr> 
    <tr> 
    <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" 
     /> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2" style="text-align:center;"> 
      1<input type="radio" name="rdoRate" value="1" > 
      2<input type="radio" name="rdoRate" value="2" > 
      3<input type="radio" name="rdoRate" value="3" > 
      4<input type="radio" name="rdoRate" value="4" > 
      5<input type="radio" name="rdoRate" value="5" > 
      6<input type="radio" name="rdoRate" value="6" > 
      7<input type="radio" name="rdoRate" value="7" > 
      8<input type="radio" name="rdoRate" value="8" > 
      9<input type="radio" name="rdoRate" value="9" > 
      10<input type="radio" name="rdoRate" value="10" > 
     </td> 
    </tr> 
    <tr><td colspan='4' align='center'><input type='submit' name='rate_submit' value='Rate'></td></tr> 
</table> 
</form> 

PHP

if (isset($_POST['flag_submit_x'])) 
{ 
     //Code to process the flagged image 
} 

if (!empty($_POST['rate_submit'])) 
{ 
     //Code to process the rated image 
} 

有什麼辦法當按下單選按鈕,我可以提交表單和檢索的價值已按下的單選按鈕?

+0

在HTML中你需要一個按鈕來發送數據。你需要爲此使用js – nowhere

+0

我正在使用PHP和HTML一起使用。 –

回答

2

是的,你需要使用JavaScript。使用jQuery,

$('input[type=submit]').click(function(){ 
    return false; 
}); 

$('input[type=radio]').click(function(){ 
    $('form').submit(); 
}); 

您需要了解如何使用$ .ajax()將信息傳輸到PHP或從PHP傳輸信息。 Read this.

+0

我將如何處理和檢索在PHP代碼中發送的值? –

+0

@GlenRobson查看更新 –

+0

我試過這種方法,我無法讓它工作。你能提供一個例子嗎? –

0

當然,爲什麼不給每個按鈕附加一個js函數,並讓它將值發送到服務器,無論是ajax還是常規。

function submitRate(image_id, rating){ 
//here you would do the magic:) 
//maybe grab other form fields or just the rating 
} 

,並在你的按鈕onclick="submitRate()"

+0

我如何將信息從js發送到PHP以及如何處理和檢索PHP中的值? –

+0

在您的submitRate()發送ajax調用到後端php腳本並返回結果 – phpalix

0

1)刪除提交輸入。

2)使表單提交虛假:

<form id="ratebox" name="ratebox" action="" method="" onSubmit="return false;"> 

3)將後置代號爲提交頁面:

$.post("Box.php?bid=<?php echo $boxId ?>", $("#ratebox").serialize()); 
+0

這不會工作,因爲我在同一個表單中使用圖像按鈕(標記按鈕)來提交請求。 –