从多个按钮PHP获取提交按钮值

时间:2018-10-05 09:31:57

标签: php input dynamic menu submit

我在此处的表单元素代码中有一个动态菜单

<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,请提前谢谢您的帮助。

3 个答案:

答案 0 :(得分:0)

当您单击“提交”按钮时,您将获得表单的所有输入值。

做一件事,将此语句print_r($_GET);exit;放在display_post()的第一行,然后单击“提交”按钮,看看会得到什么。

注意::1.要获取clicked按钮的值,则应使用javascript或jQuery和Ajax。 2.您无法通过字段ID获取输入字段的值。 例如如果我们有字段<input type="submit" name="page-1" id="page-1" value="page-1"> 那么我们可以得到它的值:

echo $_GET['page-1'];

page-1是输入字段名称。

答案 1 :(得分:0)

如果我猜对了,你的困难是什么

$blog_post_id = $_GET["id"]; 
$sql = "SELECT * FROM blog_posts where id='".$blog_post_id."' ";//I modified this line
$result = mysqli_query($conn, $sql) or die('cannot load');

答案 2 :(得分:0)

您可以为每个按钮创建5种不同的形式,并将操作更改为

action="index.php?id=1" 

然后使用$_GET['id']

还要更改id='blog_post_id' " to id='$blog_post_id' "