2014-04-07 108 views
-1

如何獲取這些單選按鈕的值在同一個php頁面或另一個頁面上。獲取具有不同名稱和相同循環的單選按鈕值

<?php 
    $i=1; 
    while($i<=5) { 
     echo " 
     <input type='radio' name='rating$i' value='1' id='rating_0'> 
     <input type='radio' name='rating$i' value='2' id='rating_1'>               
     <input type='radio' name='rating$i' value='3' id='rating_2'>               
     <input type='radio' name='rating$i' value='4' id='rating_3'>              
     <input type='radio' name='rating$i' value='5' id='rating_4'> 
    "; 
     echo "<br />"; 
     $i++; 
    } 
    ?> 
+0

也許用foreach($ _ POST){}? – gbestard

回答

1

由於您使用PHP,我假設您正在尋找一個服務器端解決方案。

在這種情況下,您應該用form環繞輸入。例如: -

<form name="myForm" action="myAction.php" method="post"> 
<?php 
    $i=1; 
    while($i<=5) { 
     echo " 
     <input type='radio' name='rating$i' value='1' id='rating_0'> 
     <input type='radio' name='rating$i' value='2' id='rating_1'>               
     <input type='radio' name='rating$i' value='3' id='rating_2'>               
     <input type='radio' name='rating$i' value='4' id='rating_3'>              
     <input type='radio' name='rating$i' value='5' id='rating_4'> 
    "; 
     echo "<br />"; 
     $i++; 
    } 
    ?> 
</form> 

myAction.php是你處理表單數據的頁面;您可以根據您的需要選擇postget方法。如果您選擇post,正如我在示例中所寫,在myAction.php之內,您可以在$_POST數組內找到您的輸入值。

對於這個簡單的例子,你必須:

$_POST['rating1']$_POST['rating2'] ..

如果您已經知道將有5個輸入,你可以使用一個週期內myAction.php還有:

while($i<=5) { 
    // do something with $_POST["rating$i"] 
} 

更新: 如果你知道你只有這些輸入,你可以遍歷所有$_POST VA梅毒是這樣的:

foreach($_POST as $val){ 
    // do something with $val 
} 

如果你不知道的投入數量,但你知道,他們會全稱爲「ratingX」,你可以遍歷所有$_POST價值和尋找那些與開始「評級「(不是最佳優化解決方案):

foreach($_POST as $key => $val){ 
    if(substr($key, 0, 6) == 'rating'){ 
     // do something with $val 
    } 
} 
+0

嗨洛倫佐!謝謝你的回答,但我不確定輸入的數量,可以通過許多問題,你能建議我應該怎麼做? –

+0

我更新了我的答案,看看 –

+0

真棒,非常感謝! –

0

試着包含一個表單並添加它。

<form action="page.php" action="post"> 
<?php 
    while($i<=5) { 
      echo " 
      <input type='radio' name='rating$i' value='1' id='rating_0'> 
      <input type='radio' name='rating$i' value='2' id='rating_1'>               
      <input type='radio' name='rating$i' value='3' id='rating_2'>               
      <input type='radio' name='rating$i' value='4' id='rating_3'>              
      <input type='radio' name='rating$i' value='5' id='rating_4'> 
     "; 
      echo "<br />"; 
      $i++; 
     } 
?> 
</form> 

您可以從$_POST數組訪問值形式的行動網頁像

foreach($_POST() as $radioval) 
{ 
echo $radioval; 
} 
+0

上的幫助,實際上OP的代碼會起作用,因爲'$ i'會被擴展,因爲它在雙引號字符串中 –

0

你能做得到的值(未選中值)

var elements = document.querySelectorAll('input[name="rating$i"]'); //where rating$i is rating1 rating 2 and so on 
for (var element in elements) 
{ 
    var value=element.value; 
} 

得到選定的值你必須檢查

var value = rating$i.value; //rating1 rating2 and so on 
相關問題