我正在尝试将数字“post ID”值附加到注释中,以便可以从数据库中检索它们并显示在适当的位置。如何在我的html表单中建立这个数值,将其发送到将其插入数据库的脚本?我假设我需要使用GET或POST,但我不明白如何使用它们发送除用户输入的文本之外的任何内容。
这是我用来发送“名称”和“评论”输入的表单:
<div class="comments">
<form action="foxpost.php" method="post">
<label for="name">Name</label><br>
<input id="name" name="name" type="text" /><br>
<label for="message">Comment</label><br>
<textarea class="message" id="message" name="message"></textarea><br><br>
<input type="Submit" value="Post Comment" />
</form>
</div>
答案 0 :(得分:2)
由于您使用PHP标记了此问题,我猜这是您用于后端的语言。我正在做的另一个假设是你实际使用postID格式化你的请求查询字符串,比如“http://example.com/posts.php?postID=1212”,注意查询字符串中的postID,你只需传递它,就像这样:
<div class="comments">
<form action="foxpost.php?postID=<%= $_GET['postID'] %>" method="post">
<label for="name">Name</label><br>
<input id="name" name="name" type="text" /><br>
<label for="message">Comment</label><br>
<textarea class="message" id="message" name="message"></textarea><br><br>
<input type="Submit" value="Post Comment" />
</form>
</div>
使用
<%= $_GET['postID'] %>
将简单地将查询字符串中的postID直接回显到HTML中,或者您可以将其分配给变量。
答案 1 :(得分:1)
如果您使用的是mysql,则无需创建它,当您插入新帖子时,mysql可以自动创建它。
例如,我们可以创建一个表
CREATE TABLE `student` ( `student_id` INT( 3 ) NOT NULL AUTO_INCREMENT, `name` VARCHAR( 25 ) NOT NULL , `email` VARCHAR( 50 ) NOT NULL , UNIQUE ( `student_id` ) );
然后使用以下查询
INSERT INTO `student` ( `name` , `email` ) VALUES ( 'john', 'email' );
如您所见,查询中未指定id,但该字段具有AUTO_INCREMENT属性。当您插入没有ID的学生时,它将获得最高ID并添加一个。因此,如果您有空表并运行上面的插入查询,您将得到3行ID为1,2和3。
更多内容在mysql手册http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
P.S。如果您使用的是其他数据库,请指定其中一个。
---编辑1 --- 可能会非常误读这个问题(已经过了午夜,但这不是借口) 如果你想通过,你有几个选择 1.这里提到的一个隐蔽的领域 2.如果你从另一个页面添加评论,那么来自于comment.php?postid = 13的$ _GET ['postid'] 3.两者
但是在添加帖子存在的评论之前不要忘记。
...我可以建议使用akismet库来减少垃圾邮件吗? http://www.achingbrain.net/stuff/php/akismet
您在wordpress.com注册时可以免费获得一个密钥
答案 2 :(得分:0)
将ID放在表单的隐藏字段中:
<input type="hidden" name="post_id" value="id_goes_here" />
答案 3 :(得分:0)
我建议不要将ID作为表单的一部分,只使用您的数据库AUTO_INCREMENT
功能。