我是php / html的新手,我试图从html表单中获取值并将其设置为外部php脚本中的变量。
此变量用于在postgres数据库中运行SQL。单击按钮即可触发php脚本。
我的猜测是使用获取值是html格式的文本:
$SQL = $_GET['get_value'];
但我无法让它发挥作用。有人可以帮我解释一下该做什么吗?
我的HTML代码如下:
<!DOCTYPE html>
<html>
<body>
<form name="SQL" action="query_map.php" method="get">
SQL:<br>
<input type="text" name="SQL" id="get_value">
<br>
</form>
<button type="submit" id="script-button">
Run the script
</button>
<script>
function runScript() {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState === 4) {
if (request.status === 200) {
alert('Ran the script, result was ' + request.responseText);
} else {
alert('Something went wrong, status was ' + request.status);
}
}
};
request.open('POST', 'http://localhost:8076/query_map.php', true);
request.send(null);
return false;
};
document.getElementById('script-button').onclick = runScript;
</script>
</body>
</html>
php代码如下:
<?php
$SQL = $_GET['get_value'];
$db = pg_connect("host=localhost dbname=kopse_hof_put_25 user=postgres password=baf45baf")
or die ("Could not connect to server\n");
$query = pg_query($db, "create or replace view resultaat as
select *
from put_25_vlak_1_vulling
where id = $SQL");
?>
我在Chrome控制台中看不到任何错误。我测试了PHP,这工作正常。
答案 0 :(得分:1)
您通过输入名称而不是ID读取GET和POST,因此它应该是:
$SQL = $_GET['SQL'];
答案 1 :(得分:1)
使用通用 POST / GET
$SQL = $_REQUEST["SQL"];
答案 2 :(得分:0)
我相信我找到了解决方案,感谢@ Rahul Dambare
我在表单中添加了一个。所以我的表格如下:
<form name="SQL" action="query_map.php" method="get">
SQL:<br>
<input type="text" name="SQL" id="SQL">
<br>
<input type="submit">
</form>
我收到了以下错误:
错误:输入结束时的语法错误第4行:其中id = ^在C:\ xampp \ htdocs \ query_map.php第9行。
存在此错误的原因是因为我的SQL认为我的回复是文本。有两种可能的解决方案。第一种解决方案是将文本类型的形式更改为整数。
第二个解决方案是添加一个pg_escape_string以在SQL中包含引号。 php如下:
<?php
$test = $_REQUEST['SQL'];
$SQL = pg_escape_string($test);
$db = pg_connect("host=localhost dbname=kopse_hof_put_25 user=postgres password=password")
or die ("Could not connect to server\n");
$query = pg_query($db, "create or replace view resultaat as
select *
from put_25_vlak_1_vulling
where id = $SQL");
&#13;
感谢所有帮助