我无法理解在单击表单提交按钮时通过页面传递的处理变量。基本上我有一个用户编写SQL查询的文本区域。然后点击提交。然后在同一页面(x.php)上,我必须在表格中显示结果。我想,当用户单击按钮时,我调用连接到数据库的函数,然后运行查询,并将结果输出到表中。我下面的代码是一个模拟,并没有很好的工作。但上面基本上是我想要做的。
在我的代码中,我调用了该页面,并检查是否已单击了正确的提交按钮,这是我应该怎么做的?
此外,我正在尝试在下面的代码中发布元数据,但该表如何替换页面上已有的内容?
<html>
<head>
<title>CNT 4714 - Project Five Database Client</title>
</head>
<body style="background-color:white">
<center>
<h1 style="color:red">CNT 4714 - Project Five Database Client</h1>
<hr>
<div style="float:left; text-align:left;padding-right:80px; padding-left:80px; ">
<font color="yellow">
<?php
?>
Welcome Back!<br>
<?php echo $_POST["user"];?>
</font>
</div>
<font color="yellow">
<div style="float:left; text-align:left">
<center>
<h2 style="color:green">Enter Query</h2><br><br>
Please enter a valid SQL Query or update statement. You may also just press<br>
"Submit Query" to run a defualt query against the database!
<form action="" id="sql" method="post">
<br>
<textarea rows="10" cols="50" name="query" form="sql">Enter text here...</textarea><br><br>
<input type="submit" name="submit" color="red">
<input type="submit" name="" color="red" value="Submit Update">
</form>
<?php
if(isset($_POST['submit'])){
echo "hello";
query(); //here goes the function call
}
function query()
{
echo "hello";
$conn = mysqli_connect("localhost:3306", "root", "*******", "project4");
$query = $_POST["query"];
$result = mysqli_query($conn, $query);
$metadata = mysqli_fetch_fields($result);
print("<tr>");
for($i=0; $i<count($metadata);$i++){
print("<tr");
printf("%s",$metadata[$i]->name);
print("</tr>");
}
}
?>
</center>
</div>
</font>
</center>
</body>
</html>
答案 0 :(得分:2)
您正在尝试获取全局变量$_POST
的值,同时将其提交到$_GET
。解决此问题的方法是将method
分配到表单元素中。
示例:强>
<form id="sql" action="" method="POST">
有多种方式可以检查或提交表单,其中一种方式(我一直使用的方式)是检查或$_SERVER['REQUEST_METHOD']
等于&#34; POST
&# 34 ;.通过这种方式,您可以区分GET,POST或PUT请求。
示例:强>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['sql']))
{
....
}
}
答案 1 :(得分:0)
如果您正在使用$_POST
,则表单请求方法应为POST
。
<form action="" id="sql" method="post">
否则,默认情况下会以GET
请求提交。
在这种情况下,您必须使用$_GET
来访问变量。