PHP使用复选框作为条件发布多个数据

时间:2011-07-30 12:24:28

标签: php forms post checkbox

我正在做一个关于twitter API的项目,但是我无法将检查的数据发布到另一个php进行编辑!我正在创建一个网站,允许我的用户选择他们从Twitter搜索的推文,在发布到数据库之前在textarea中编辑它。

这是场景!目前,我从Twitter检索了用户名和用户的推文。但是我无法将选定的推文发布到另一个页面。

以下是将符合搜索条件的用户名和推文放入带有使用数组调用doSearchTweet.php复选框的表单的代码。

foreach ($json->results as $result)
    {
        for($i=0;$i<$result;$i++){
            $tweet[$i]= $result->text;
            $user[$i]= $result->from_user;
        ?>
        <tr><td width="300" align="center"><input type="text" name="username[]" readonly="readonly" style="border:0" value="<?php echo $user[$i] ?>"></td>
        <td width="400"><textarea cols="80" rows="3" name="content[]" readonly="readonly" style="border:0" ><?php echo $tweet[$i] ?></textarea></td>
        <td width="150" align="center"><input type="checkbox" name="add[]" value="1"/></td></tr>
        <?php
        }
    }

用户选择了他们想要编辑/发布的推文后,会使用这些代码将它们发布到createPost.php。

for ($i=0;$i<20;$i++){
   if ($select[$i] == 1){
     echo $user[$i].'<br/>';
     echo $content[$i].'<br/>';
   }
}

结果显示无论我检查哪一个。我将发布我检查的数组的数量,而不是我检查的特定数组。

  

例如:如果我检查了推文0,2,4   它总是会发布0,1,2

如何更改我的代码,以便我选择0,2,4。它会发布属于数组0,2,4的用户名和推文?

1 个答案:

答案 0 :(得分:0)

原因是复选框定义的添加数组始终从0开始。如果未选中复选框,则不会在添加[]中显示。

您应该给复选框提供当前索引$ 1的值:

<input type="checkbox" name="add[]" value="<?php echo $i ?>"/>

然后遍历复选框数组:

foreach ($add as $i) {
     echo $user[$i].'<br/>';
     echo $content[$i].'<br/>';
}

更新评论#15

您需要在结果循环中获得有效的ID:

<?php
    $i = 0;
    foreach ($json->results as $result) {
        $tweet[$i]= $result->text;
        $user[$i]= $result->from_user;
?>
        YOUR HTML
<?php
        $i++;
    }
?>