-1

我在这里有一个简单的挑战 php mysql 。我是 php 的新手,正在尝试编写一些代码。

下面是我的代码:

$checked1 = $row['rmc_induction_softskill'];
$checked2= $row['rmc_induction_neo'];
$checked3 = $row['rmc_induction_itil'];
$checked4 = $row['rmc_induction_hr_induction'];
$checked5 = $row['rmc_induction_vmware'];
$checked6 = $row['rmc_induction_lss'];

我希望运行一个循环并以一对一的方式运行包含上述所有变量名的单个 html 行。例如,我想要 $checked1 == 1 , $checked2 == 1 。我尝试了下面的代码,但每次循环都无法获得 $checked1

for ($i=1; $i<=33; $i++){
$checked = checked{$i};
echo $checked;
<td align="center" bgcolor="#E6E6FA">  <input type="checkbox" id="<?php echo $i.$rows['emp_id']; ?>" name="Emails[]" value="<?php echo $i.";".$concatenated_string; ?>" <?php if ($checked == 1) echo "checked" ; ?>  onclick="check(<?php echo $i.$rows['emp_id']; ?>);"  /></td>
4

5 回答 5

2

您可以使用您的 var 名称分配一个变量:

$check0 = 1;
$check1 = 0;
$check2 = 1;
$check3 = 1;

for($i = 0; $i < 4; $i++) {
    $var = "check$i";
    echo ($$var == 1 ? 'true' : 'false') . '<br />';
}

我希望这是你想要做的。

于 2013-06-19T19:57:18.447 回答
0

这是我可以假设你想要的最接近的

http://3v4l.org/mV0TO

<?php

    $rows['emp_id'] = 333;
    $concatenated_string = "hello";

    $checked1 = 1;// $row['rmc_induction_softskill'];
    $checked2= 1;//$row['rmc_induction_neo'];
    $checked3 = 0;//$row['rmc_induction_itil'];
    $checked4 = 1;//$row['rmc_induction_hr_induction'];
    $checked5 = 0;//$row['rmc_induction_vmware'];
    $checked6 = 0;//$row['rmc_induction_lss'];

    for ($i=1; $i<=6; $i++)
    {
        $checked = ${'checked'.$i};
        echo $checked;

        echo '
<td align="center" bgcolor="#E6E6FA">
    <input type="checkbox" id="'.$i.$rows['emp_id'].'" name="Emails[]" value="'.$i.';'.$concatenated_string.'" '.($checked == 1)?'checked':''.'  onclick="check('.$i.$rows['emp_id'].');"  />
</td>';

     }
?>
于 2013-06-19T20:08:28.467 回答
0

我无法准确理解你想要做什么,但这里有一个关于你可能能够做什么的通用建议......

$checked[1] = $row['rmc_induction_softskill']
$checked[2] = $row['rmc_induction_neo']
....etc

for ($i=0;$i<sizeof($checked);$i++) {
    echo $checked[$i];
}

不知道这是否是您要查找的内容,因此请告诉我您是否需要更具体的内容并添加一些额外信息,以便我更好地了解您要做什么。

于 2013-06-19T20:00:15.343 回答
0

您不能使用 checked{$i} 来模拟 checked1 或 checked2 或...您要做的是将所有内容放入/推送到具有键值对的数组中,然后根据列表的索引恢复它们。我相信您的 MySQL 读取会返回一个键值对数组,因此您可以循环访问它,但是如果您想选择特定字段,那么您可以在 PHP 中创建一个数组并推送其中的项目。让我给你举个例子:

// insert into the checked array. Insert all those fields/rows that you want 
$checked = array($row['rmc_induction_softskill'], $row['rmc_induction_neo'], $row['rmc_induction_itil']);

for ($i=1; $i<=count($checked); $i++){
$checkedTemp = checked[$i];
echo $checkedTemp;
<td align="center" bgcolor="#E6E6FA">  <input type="checkbox" id="<?php echo   $i.$rows['emp_id']; ?>" name="Emails[]" value="<?php echo $i.";".$concatenated_string; ?>" <?php if ($checkedTemp == 1) echo "checked" ; ?>  onclick="check(<?php echo $i.$rows['emp_id']; ?>);"  /></td>

所以这是一种方法。根据您插入数组的顺序,您也可以将其取出。

于 2013-06-19T20:01:24.907 回答
0

以下是我的问题的答案。亚历克斯的帮助:

将数据库中的变量或数据放入数组中。如下所示。

$checked = array($row['rmc_induction_softskill'], $row['rmc_induction_neo'], $row['rmc_induction_itil']);

对创建的数组进行循环,使用数组的计数来获取总数。

for ($i=0; $i<=count($checked); $i++){
$checkedTemp = $checked[$i];
echo $checkedTemp;
于 2013-06-20T09:34:52.697 回答