0

我在下面的代码中检索了一个问题的四个可选复选框答案之一。

在我的数据库中,而不是读取相应的值,它总是0在每次勾选一个框时发布。我猜这是关键。怎么可能在这里显示价值?我尝试用值替换键,但没有成功。

-这是我的代码-

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>   
4

3 回答 3

0

尝试这个:

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

_POST['Person']数组中,键是1, 2, 3, 4,值是Excellent, Good, Satisfactory, Poor。在您的代码中,您调用intval()了值,它返回0任何不是数字的值。

于 2013-06-21T15:05:15.300 回答
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 
于 2013-06-21T15:06:26.773 回答
0

我不确定我是否正确地问了这个问题,但是一旦我研究了与 intval 类似的函数,我将其替换为 strval 以显示我在数据库中需要的值。

$_POST['Person'][$key] = strval($Person);
于 2013-06-21T15:23:49.987 回答