Nig*_*ICU 0 php multidimensional-array
我正在尝试添加像StackOverflow和Facebook使用的评论到我正在建立的网站.基本上,每个父帖都有自己的子评论.我打算用jQuery Ajax实现前端,但我正在努力解决如何最好地处理PHP后端问题.
由于每个表单字段具有相同的名称和ID会导致验证错误(可能是一些),我将父帖子的ID添加到每个表单字段.将要传递的字段是commentID,commentBody,commentAuthor  - 将添加ID commentTitle-12,等等.
由于$_POST每次处理新帖子时array_key都不同,我需要-12从$_POST键中删除(或者ID可能是什么),只留下commentTitle,commentBody等及其相关值.
例
$_POST['commentTitle-12']; //how it would be received after submission
$_POST['commentTitle']; //this is what I am aiming for
非常感谢
解决方案 感谢CFreak-
//Basic example, not actual script
<?php
if (array_key_exists("send", $_POST)) {
    $title = $_POST['title'][0];
    $body = $_POST['body'][0];
    echo $title . ', ' . $body;
}
?>
<html>
<body>
<form name="test" id="test" method="post" action="">
<input type="text" name="title[]"/>
<input type="text" name="body[]"/>
<input type="submit" name="send" id="send"/>
</form>
</body>
</html>
更新2 哎呀,有点忘了它的全部要点 - 唯一的名字(虽然已经确定1)这不是真正必要的2)可能更好,对于这个应用程序,使用jQuery来做这个)
//Basic example, not actual script
    <?php
    if (array_key_exists("send", $_POST)) {
        $id = $_POST['id'];
        $title = $_POST['title'][$id];
        $body = $_POST['body'][$id];
        echo $title . ', ' . $body;
    }
    ?>
    <html>
    <body>
    <form name="test" id="test" method="post" action="">
    <input type="text" name="title[<?php echo $row['id'];?>]"/>
    <input type="text" name="body[<?php echo $row['id'];?>]"/>
    <input type="hidden" name="id" value="<?php echo $row['id']; //the ID?>"/>
    <input type="submit" name="send" id="send"/>
    </form>
    </body>
    </html>
PHP有一个小技巧可以从HTML表单中获取数组甚至多维数组.在HTML名称中,您的字段如下:
<input type="text" name="commentTitle[12]" value="(whatever default value)" />
(你可以使用变量或其他东西放在"12"中,如果你正在做的那样,关键是[]括号.
然后在PHP中你会得到:
$_POST['commentTitle'][12]
然后,您可以循环浏览注释并通过索引ID获取每个注释.
你也可以把它留在HTML中作为空方括号:
<input type="text" name="commentTitle[]" value="(whatever default value)" />
如果你不关心实际的ID值是什么,那只会使它成为一个从0开始的索引数组.
希望有所帮助.
| 归档时间: | 
 | 
| 查看次数: | 3420 次 | 
| 最近记录: |