【发布时间】:2019-03-10 18:43:38
【问题描述】:
我在表单元素代码里面有一个动态菜单
<form method="GET" action="index.php">
<?php
display_menu(); // this function generates menu items
?>
</form>
生成菜单后,每个菜单项都是上述表单的提交按钮,我想通过提交按钮的名称或 id 属性获取单个元素的输入,并从数据库加载帖子。
<form method="GET" action="index.php">
<input type="submit" name="page-1" id="page-1" value="page-1">
<input type="submit" name="page-2" id="page-2" value="page-2">
<input type="submit" name="page-3" id="page-3" value="page-3">
<input type="submit" name="page-4" id="page-4" value="page-4">
</form>
所以当任何输入按钮被按下时,函数 display_post() 就会被调用。函数代码如下:-
function display_post(){
$conn = mysqli_connect('localhost', 'root', '', 'posts') or die('cannot connect');
if($_SERVER['REQUEST_METHOD'] == 'GET' ){
$blog_post_id = $_GET["id"];
$sql = "SELECT * FROM blog_posts where id='blog_post_id' ";
$result = mysqli_query($conn, $sql) or die('cannot load');
while ($row = mysqli_fetch_assoc($result)){
if($row > 0){
echo '<div>'.$row['content'].'</div>';
}else echo 'no posts';
}
}
}
但是,display_post() 方法在内容标签内调用,而 display_menu() 在另一个 div 内调用。
所以问题是我无法获得提交按钮的 ID,任何帮助将不胜感激。
【问题讨论】:
-
哪个 ID?你的意思是输入值吗?
-
不推荐使用未经处理的 GET 参数,这会导致 sqlinjections。您应该首先确保
$blog_post_id是一个数值。 -
page-1, page-2, page-3 是你的 blog_post_id 吗?
-
我们无法通过
id获取输入字段,当您尝试获取$_GET["id"];时,我们通过name获取输入字段 -
我试过 $_GET["name"];也是,但同样的通知未定义
标签: php input dynamic menu submit