我希望能够从选择框中进行选择并查看所选表格。
此时我对php / MySQL的技能水平是:
$query = "SELECT * FROM electrical ORDER BY item_id LIMIT $offset, $RPP";
使用此查询,页面加载时会填充div
。
我有一个选择框,有6个选项:
<form>
<select name="dbtables" onchange="showTable(this.value)" id="selectBox">
<option value="">Select a materials table:</option>
<option value="" id="hr"></option>
<option value="equipment">Worker Equipment</option>
<option value="tool">General Tools</option>
<option value="electrical">Electrical Materials</option>
<option value="mechanical">Mechanical Materials</option>
<option value="plumbing">Plumbing Materials</option>
<option value="hvac">HVAC Materials</option>
</select>
</form>
每个选项都是一个MySQL数据库中的表。
showTable
的脚本正在运行,在选择警报后显示选择的选项。
function showTable(str) {
if (str == "") {
document.getElementById("materials").innerHTML = "";
return;
}
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("materials").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "index.php?q=" + str, true);
xmlhttp.send();
alert(str);
}
任何指示或帮助表示赞赏。
答案 0 :(得分:1)
使用$ _GET方法选择$ str值并构造查询。然后运行该查询并回显数据。之后,您可以在alert()之后在脚本文件中调用此函数。
function useHttpResponse() {
if (http.readyState == 4) {
if(http.status == 200) {
var txt = http.responseText;
var response_msg="<h4><span class='darkblue'>" + txt + "</span></h4>"
document.getElementById('showtime').innerHTML = response_msg;
}
} else { //you may skip this else portion
document.getElementById('showtime').innerHTML = '<img src="images/loading.gif" /><span class="darkblue">retrieving data...</span>';
}
}
此处,您获取的数据将显示在ID为“showtime”的div上。在获取时间期间,加载gif将在“showtime”div中可见。或者你可以跳过其他部分。 希望这个功能能帮到你。
答案 1 :(得分:0)
我认为您正在寻找的是在数据库上执行的SQL查询。你应该做的是将查询字符串中的q
- 变量插入到SQL查询中,如下所示
$query = "SELECT * FROM " . $_REQUEST['q'] . " ORDER BY item_id LIMIT $offset, $RPP";
当然,您应该检查或转义变量以防止SQL注入,使用类似mysql_real_escape_string
的内容,但这不是这个问题的范围。