Passing multiple parameters by POST using ajax to php
我正在尝试通过POST方法使用AJAX将多个参数传递给我的PHP文件,以便我可以查询MySQL数据库。
HTML文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <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> <td style="padding:5px;"> <input type="text" id="searchtext11" required></td> <button id="searchgo1" onclick="searchone()"></button> |
这是我成功访问下拉值和文本框值的Javascript文件,并将它们分别存储在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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代码仅适用于
1 | var the_data='select='+sv; |
searchone.php
1 2 3 4 5 6 7 8 9 |
如何获得我的PHP文件的下拉列表和文本框值,以便我可以使用这些变量形成SQL查询。
你需要使用一个&符号,就像它是一个GET一样。 此外,您应该对文本进行编码,以确保它不包含任何可能具有特殊含义的字符
1 2 3 4 | var the_data = '' + 'select=' + window.encodeURIComponent(sv) + '&text=' + window.encodeURIComponent(searchtext11); // ^ ^^ |
您不需要手动解码服务器端,因为您已经知道POST数据是
添加&amp; 在这个字符串中:
1 | var the_data = 'select='+sv+'&text='+searchtext11; |