我试图运行一个php脚本,从一个按钮的点击从数据库拉数据。我想使用ajax,这样页面就不会刷新。我已经测试了使用正常的post/提交与页面刷新,它的工作原理,但我有麻烦使用ajax来显示数据。这是我的代码:
<form method="get" id="ghosts">
<div id=rightc>
<h7>Select Hosts:</h7>
<br></br>
<select id="group" name="group" onchange='this.form.submit()'>
<?php
$link=mysql_connect($mysqlserver, $username, $password) or die ("Error connecting to mysql server: ".mysql_error());
mysql_select_db($dbname, $link) or die ("Error selecting specified database on mysql server: ".mysql_error());
$gquery=" SELECT groupname FROM groups";
$gresult=mysql_query($gquery) or die ("Query to get data from firsttable failed: ".mysql_error());
while ($grow=mysql_fetch_array($gresult)) {
$groupname=$grow["groupname"];
echo "<option>$groupname</option>";
}
?>
</select>
<input type="hidden" name="ghosts" value="1" />
<noscript> <input type="submit" name="ghosts" id="group" value="Choose Group" /></noscript>
</form>
如果您的search.php文件返回HTML,并且假设ajax可以工作(看起来应该可以),那么您正在尝试将内容放入不存在的元素中。
$(".result").html(data);
它需要存在于页面上。把这个添加到某个地方。
<div class="result"></div>
然而,你的PHP不返回任何数据,因为这个条件if(isset($_POST['ahosts']))
请求一个不在表单中的参数,并使用错误的请求方法。
你使用GET ($.get()
),所以在PHP中它需要读取
if(isset($_GET['ahosts']))
并将其添加到表单或中,给按钮一个名称
<input type="hidden" name="ahosts" value="1" />
<!-- or -->
<button type="submit" name="ahosts" />
我想你犯了一个错误:
if(isset($_POST['ahosts']))
您检查isset()
是否POST请求,但实际上您发送GET请求…
阅读文档https://api.jquery.com/jquery.get/
所以如果你把代码改成:
if(isset($_GET['ahosts']))
这将返回true,现在你将有一个响应