Javascript 如何让PHP查询根据下拉列表选择某个表?
我有一个web程序,目标是为用户选择的特定窑绘制数据点。我的问题是,当用户想要选择一个新表时,我如何将所有单独的JSON页面更新到从他们选择的新表中提取数据的位置 这是我的下拉列表creater代码Javascript 如何让PHP查询根据下拉列表选择某个表?,javascript,php,html,mysql,amcharts,Javascript,Php,Html,Mysql,Amcharts,我有一个web程序,目标是为用户选择的特定窑绘制数据点。我的问题是,当用户想要选择一个新表时,我如何将所有单独的JSON页面更新到从他们选择的新表中提取数据的位置 这是我的下拉列表creater代码 窑号: 如果我正确理解了您的需求,那么您需要的是Ajax 您必须像您一样填充select,并且在每次select时,对a.php进行Ajax调用,您将在其中处理用户选择的内容。在您的例子中,这个.php文件将采用用户选择的表名,运行一个查询并将一些结果返回到html。出于演示目的,我将用一个示例
窑号:
如果我正确理解了您的需求,那么您需要的是Ajax
您必须像您一样填充select,并且在每次select时,对a.php进行Ajax调用,您将在其中处理用户选择的内容。在您的例子中,这个.php文件将采用用户选择的表名,运行一个查询并将一些结果返回到html。出于演示目的,我将用一个示例进行解释
假设您在.html中有如下选择:
Select Value:
<select name="kilns" id="kilns">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
$kilns_error = 0;
if (isset($_POST['kilns']) && !empty($_POST['kilns'])) {
$kilns = $_POST['kilns'];
} else {
$kilns = null;
$kilns_error = 1;
}
if ($kilns_error != 1) {
echo json_encode($kilns);
}
}
它的作用是,每当用户从select
中选择某个内容时,就会调用此函数,其中select的值(var data={'killns':this.value};
)通过POST
发送到名为submit.php
的文件。submit.php
可以如下所示:
Select Value:
<select name="kilns" id="kilns">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
$kilns_error = 0;
if (isset($_POST['kilns']) && !empty($_POST['kilns'])) {
$kilns = $_POST['kilns'];
} else {
$kilns = null;
$kilns_error = 1;
}
if ($kilns_error != 1) {
echo json_encode($kilns);
}
}
这里发生的事情是,在我们检查确实有一个POST请求之后,我们检查该值是未定义的还是空的。在这个简单的检查之后,我们继续echo json_encode($kilns)代码>返回最初发送到.php脚本的值,实际上是用户选择的值
在您的例子中,您需要做的是在.php脚本中实际做一些事情,而不仅仅是返回调用它的值。另外,请确保通过白名单传递您获取的值,以确保用户选择了一个实际的表,并且没有试图为您的数据库创建问题,因为在实际选择之前,只需更改他要选择的表的值就很容易了。看看mysqli和PDO准备好的语句。在这种情况下,您必须非常注意避免SQL注入。使用Konstantinos Vytiniotis提到的白名单方法,检查一下这一点没有真正了解问题,但你不能将所选值保存在db\文件中吗?你的问题相当奇怪,因为上面的代码显示了一种知识水平,如果不知道如何在脚本之间传递变量,你将无法获得。要理解这一点,您必须理解表单、操作、服务器变量或ajax。创建一个答案让你理解所有这些概念是很难的。特别是考虑到上述事实。你从哪里得到这个密码的?非常感谢!很好用。听到这个消息我很高兴!:)如果这个答案满足了您的要求,那么请将其标记为解决方案,以帮助该问题的未来访问者。