0

我正在尝试通过一种方法解析数组的单行$_POST,但是该单行具有多个属性。请参考以下代码:

<?php
    $propertiesSQL = mysql_query("SELECT id, name FROM property_name WHERE cat_id = $mainid");
?>
<table>
    <form action="newadvert.php" method="post">
        <?php
            while ($propertynames = mysql_fetch_array($propertiesSQL)){
                ?>
                <tr>
                    <td><?=($propertynames[1])?></td>
                    <td><input name="<?=($propertynames[1])?>" type="text" id=""></td>
                </tr>
                <?php
            }
        ?>
        <tr>
            <td colspan=2><input type="submit" name="submit" value="Verzenden"></td>
        </tr>
    </form>
</table>

我要做的是$propertynames[1]使用方法在 newadvert.php 文件中检索该数组$_POST,并将其所有属性分配给不同的字符串,以便以后可以轻松地单独使用它们。可能是我使用了一种完全错误的方法来使用它,所以我全神贯注于另一种方法来做到这一点。

提前感谢您的帮助。

4

3 回答 3

0

尝试这个:

<?php
    $propertiesSQL = mysql_query("SELECT id, name FROM property_name WHERE cat_id = $mainid");
?>
<table>
    <form action="newadvert.php" method="post">
        <?php
            while ($propertynames = mysql_fetch_array($propertiesSQL)){
                ?>
                <tr>
                    <td><?=($propertynames['name'])?></td>
                    <td><input name="<?=($propertynames['name'])?>" type="text" id=""></td>
                </tr>
                <?php
            }
        ?>
        <tr>
            <td colspan=2><input type="submit" name="submit" value="Verzenden"></td>
        </tr>
    </form>
</table>

Use associative array here.
  • 谢谢
于 2013-10-28T09:40:59.113 回答
0

添加一个像这样的增量变量

<?php
            $i=0; //An incrementer variable
            while ($propertynames = mysql_fetch_array($propertiesSQL)){
                ?>
                <tr>
                    <!-- Access it as $properynames[$i] instead of #propertynames[1] -->
                    <td><?=($propertynames[$i])?></td> 
                    <td><input name="<?=($propertynames[$i])?>" type="text" id=""></td>

                </tr>
                <?php
            $i++;//Increment here
            }
        ?>
于 2013-10-28T09:19:57.123 回答
0

好的,所以我找到了解决问题的方法。

<?php
    $propertySQL = mysql_query("SELECT id, name FROM property_id WHERE cat_id = $mainid");
?>
<table>
    <form action="newadvert.php" method="post">
        <?php
            while ($propertynames = mysql_fetch_array($propertySQL)){
                ?>
                <tr>
                    <td><?=($propertynames['id'])?></td>
                    <td><input name="name<?=($propertynames['id'])?>" type="text" id=""></td>
                </tr>
                <?php
                }
            ?>
            <tr>
                <td colspan=2><input type="submit" name="submit" value="Submit"></td>
            </tr>
    </form>
</table>

注意文本框的变化:input name="name<?=($propertynames['id'])?>"

然后,在文件 newadvert.php 中,我再次执行 propertySQL,并创建一个 while 循环来匹配所有内容:

$propertySQL = mysql_query("SELECT id, name FROM property_name WHERE cat_id = $mainid");
while ($propertyids = mysql_fetch_array($propertySQL)){
    $propid = $propertyids[0];
    echo 'name' . $propid . '<br />';
    $input = $_POST['name'.$propid];
    echo $input . "<br />";
}

我以前从不知道您可以在检索$_POST之前的 <.<时添加变量

无论如何,感谢您的帮助,正是因为你们,我才有了这样的想法:)

于 2013-10-28T10:28:49.900 回答