我将使用AJAX通过POST方法向我的PHP文件传递多个参数,以便我可以查询MySQL数据库。
HTML文件:
<div class="dropdown dropdown-dark">
<select class="dropdown-select" id="searchselect11" required>
<option value="faculty">Faculty</option>
<option value="dept">Dept.</option>
<option value="course">Course</option>
<option value="year">Year</option>
<option value="name">Name</option>
</select>
</div>
<td style="padding:5px;"> <input type="text" id="searchtext11" required></td>
<button id="searchgo1" onclick="searchone()"></button>
这是Javascript文件,我成功地访问了下拉列表和文本框中的值,并将它们分别存储在“sv”和“searchtext11”变量中。但问题是如何将这两个值传递给PHP文件。问题似乎出现在传递给“xmlhttp.send(the_data);”的“the_data”变量中。
“searchone()”函数如下:
function searchone()
{
//alert("hi");
var xmlhttp;
var sel = document.getElementById('searchselect11');
var sv = sel.options[sel.selectedIndex].value;
var searchtext11= document.getElementById("searchtext11").value;
var the_data = 'select='+sv+'text='+searchtext11;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST", "searchone.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(the_data);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
document.getElementById("searchresults").innerHTML = xmlhttp.responseText;
}
}
}
这段PHP代码只有在
var the_data='select='+sv;
searchone.php
<?php
if (isset($_POST['select'])) {
$str = $_POST['select']; // get data
echo $str;
}
?>
我该如何将下拉列表和文本框的值传递到我的PHP文件中,以便我可以使用这些变量构建SQL查询。
window.encodeURIComponent
中的window
是隐式的,可以省略... - Basicwindow
,但是当我使用window
的 methods 时,我的风格是保留它。因此,例如,我也会使用window.setTimeout
。 - Paul S.<input>
中输入像“hello&somevar = iWin”这样的字符串,会怎么样? - Paul S.while($r = mysql_fetch_array($rs)) { //do what you need with $r array}
代替$nr = mysql_num_rows($rs); for ($i=0; $i<$nr; $i++) { $r = mysql_fetch_array($rs); echo $r["];
。 - vladkras