AJAX 返回结果加上整个页面内容(使用 Javascript、PHP、MySQL 但不使用 JQuery)
Posted
技术标签:
【中文标题】AJAX 返回结果加上整个页面内容(使用 Javascript、PHP、MySQL 但不使用 JQuery)【英文标题】:AJAX returning results plus the entire page contents (Using Javascript, PHP, MySQL but not JQuery) 【发布时间】:2013-08-07 19:19:06 【问题描述】:我的网站上运行了一个 AJAX 脚本,该脚本应该在上一个下拉菜单 onchange 事件发生后更新相关下拉菜单(SELECT 选项菜单)。
当我单击第一个下拉列表时,第二个下拉列表似乎填充了来自 mysql 数据库查询的正确值。然而,根据我的价值观,我似乎也将整个 html 网页的内容作为一个整体拉入。
我想知道如何只在我的 SELECT 选项菜单中引入我的值而不再次加载整个网页。
我的 javascript:
<script type="text/javascript">
function showUser(str)
if (str=="")
document.getElementById("txtHint").innerHTML="";
return;
if (window.XMLHttpRequest)
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp_aris=new XMLHttpRequest();
else
// code for IE6, IE5
xmlhttp_aris=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp_aris.onreadystatechange=function()
if (xmlhttp_aris.readyState==4 && xmlhttp_aris.status==200)
document.getElementById("txtHint").innerHTML=xmlhttp_aris.responseText;
xmlhttp_aris.open('GET','http://mywebdomain.com?ajax=true&q='+str,true);
xmlhttp_aris.send();
</script>
我的 php 代码:
// begin my ghetto code
if ($_GET['ajax'] == 'true')
$q = $_REQUEST["q"];
$con = mysqli_connect('localhost','db_user','db_pass','db_name');
if (!$con)
die('Could not connect: ' . mysqli_error($con));
$sql='SELECT DISTINCT
employees.firstName,
employees.lastName
FROM
sales_reps
INNER JOIN employees ON sales_reps.employeeId = employees.employeeId
INNER JOIN sales_campaign ON sales_campaign.salesCampId = sales_reps.saleCampId
WHERE
sales_campaign.marketId = '.$q.' AND
employees.isactive = 1';
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result))
echo '<option value="' . $row['firstName'] . '">'
. htmlentities($row['firstName']) .' '.htmlentities($row['lastName']) .'</option>';
mysqli_close($con);
// end my ghetto code
我在带有下拉菜单的页面上的代码:
<select id="frm-marketid" name="frm-marketid" onchange="showUser(this.value)">
<option value="">Choose a Market</option>
<option value="74">Annapolis</option>
<option value="61">Anne Arundel</option>
<option value="26">Aventura</option>
<option value="63">Baltimore</option>
</select>
<br/>
<select id="txtHint"><b>Person info will be listed here.</b></select>
【问题讨论】:
【参考方案1】:在您输出 ajax 响应后终止您的脚本
...
mysqli_close($con);
exit;
...
【讨论】:
穆萨,非常感谢你,这非常令人振奋。我们将永远感谢您的帮助!以上是关于AJAX 返回结果加上整个页面内容(使用 Javascript、PHP、MySQL 但不使用 JQuery)的主要内容,如果未能解决你的问题,请参考以下文章