PHP数组无法与其他表单数据POST

时间:2014-11-18 09:40:52

标签: php arrays forms post hidden

我有一个名为$ content_ids的数组,我试图将其作为表单中的隐藏字段发布。

我从这里的另一个答案中找到了如何做到这一点,但我无法让它发挥作用。

以下是我的一些输入,包括数组的隐藏字段

echo "<input type=\"hidden\" value=\"1\" name=\"e\">";
foreach($content_ids as $ids)
{
    echo "<input type=\"hidden\" value=\"".$ids."\" name=\"ids[]\">";
}
echo "<input type=\"hidden\" value=\"".$content[$x]['TranslationID']."\" name=\"translationID\">";

尝试print_r($ _ POST [&#39; ids&#39;])不显示任何内容

试试这个:

if($_POST['ids'] != ""){
    echo "hello";
}

也什么都没有。但其余数据正在通过确认。

有人知道为什么吗?

编辑添加:经过测试,以确保数组实际包含将数据放入隐藏字段的数据。在隐藏字段设置之前立即打印出数组,所有显示都正常。

编辑添加:如何制作数组:

$content_ids = array();
    for($i = 0; $i < count($content); $i++)
    {
        $content_ids[] = array_push($content_ids, $content[$i]['ContentID']);   
    }

数组的输出是:

数组([0] =&gt; 2222 [1] =&gt; 1 [2] =&gt; 1111 [3] =&gt; 3)

我实际上不知道为什么索引1或索引3存在。它们不是数据库中数据的一部分。它应该只包含1111和2222。

2 个答案:

答案 0 :(得分:2)

我已运行此代码并能够获取所有发布的值

   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    </head>
    <body>
    <form action ="" method="POST" >
    <?php 
    //supose your values are 
    $content_ids = array('10','20');
    $x = 1;
    $content[$x]['TranslationID'] =20;
    // your code
    echo "<input type=\"hidden\" value=\"1\" name=\"e\">";
    foreach($content_ids as $ids)
    {
        echo "<input type=\"hidden\" value=\"".$ids."\" name=\"ids[]\">";
    }
    echo "<input type=\"hidden\" value=\"".$content[$x]['TranslationID']."\" name=\"translationID\">";

    ?>
    <input type="submit" />
    </form>
    </body>
    </html>
    <?php print_r($_POST); ?>

这里输出

Array ( [e] => 1 [ids] => Array ( [0] => 10 [1] => 20 ) [translationID] => 20 ) 

答案 1 :(得分:0)

我发现了问题。我相信问题在于数组的创建。

我唯一改变的是:

$content_ids = array();
    for($i = 0; $i < count($content); $i++)
    {
        $content_ids[] = array_push($content_ids, $content[$i]['ContentID']);   
    }

我改为:

$content_ids = array();
    for($i = 0; $i < count($content); $i++)
    {
        array_push($content_ids, $content[$i]['ContentID']);    
    }

我不知道如何,但这似乎修复了数组中不需要的索引以及未能将其作为隐藏字段发布。

我现在成功地将数组作为POST变量。谢谢大家的帮助