2013-06-21 46 views
0

我有下面的代碼檢索四個可選複選框答案之一,一個quesition。如何發佈多個回答複選框的值? - PHP

在我的數據庫中,而不是閱讀correpsonding值,它總是張貼0每一個框被勾選。我猜這是關鍵。如何在這裏顯示價值?我試圖用價值取代鑰匙,但沒有成功。

,尤其是圓形是我codes-

PHP:

foreach($_POST['Person'] as $key=>$Person) { 
    $_POST['Person'][$key] = intval($Person); 
} 
$Person = implode(',', $_POST['Person']); 

HTML:

<ul class="ratings"> 
    <li><input type="checkbox" name="Person[1]" value="Excellent" /></li> 
    <li><input type="checkbox" name="Person[2]" value="Good" /></li> 
    <li><input type="checkbox" name="Person[3]" value="Satisfactory" /></li> 
    <li><input type="checkbox" name="Person[4]" value="Poor" /></li>      
</ul> 
+0

你確定它不是在'開'而不是'0'嗎? – user20232359723568423357842364

+3

你認爲'intval(「Excellent」)'返回了什麼? – Barmar

+0

不應該是單選按鈕,而不是複選框,所以你只能選擇一個? – Barmar

回答

0

試試這個:

$Person = implode(',', array_keys($_POST['Person'])); 

_POST['Person']數組,鍵爲1, 2, 3, 4,值爲Excellent, Good, Satisfactory, Poor。在您的代碼中,您對這些值調用intval(),對於不是數字的任何內容,它將返回0

0
$_POST['Person'][$key] = intval($Person); 

該聲明將採用當前爲「滿意」的複選框的整數。所以,是一個字符串的INTVAL爲0

看看這個腳本:

<form action="test.php" name="checkbox" method="post"> 
    <ul class="ratings"> 
     <li><input type="checkbox" name="Person[1]" value="Excellent"/></li> 
     <li><input type="checkbox" name="Person[2]" value="Good"/></li> 
     <li><input type="checkbox" name="Person[3]" value="Satisfactory"/></li> 
     <li><input type="checkbox" name="Person[4]" value="Poor"/></li> 
    </ul> 
    <input type="submit" value="Submit"> 
</form> 
<pre> 
<?php 

print_r($_POST); 

echo "intval of " . intval($_POST[0]); // Converts the string to the value 0 ALWAYS 


?> 
</pre> 

輸出(注意$key是整數,值是字符串)

Array 
(
    [Person] => Array 
     (
      [3] => Satisfactory 
      [4] => Poor 
     ) 

) 
intval of 0 
0

我m不知道我是否正確詢問了問題,但是一旦我研究了類似的intval函數,我就用strval替換它以顯示我在數據庫中需要的值。

$_POST['Person'][$key] = strval($Person);