Javascript 使用ajax用PHP和POST显示数据时遇到问题

Javascript 使用ajax用PHP和POST显示数据时遇到问题,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在尝试运行一个php脚本,只需单击一个按钮即可从数据库中提取数据。我想使用ajax,这样页面就不会刷新。我已经使用正常的post/submit和页面刷新进行了测试,它可以正常工作,但是我在使用ajax显示数据时遇到了问题。这是我的代码: <form method="get" id="ghosts"> <div id=rightc> <h7>Select Hosts:</h7> <

我正在尝试运行一个php脚本,只需单击一个按钮即可从数据库中提取数据。我想使用ajax,这样页面就不会刷新。我已经使用正常的post/submit和页面刷新进行了测试,它可以正常工作,但是我在使用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>
然后将其添加到表单中为按钮命名

<input type="hidden" name="ahosts" value="1" />
<!-- or -->
<button type="submit" name="ahosts" />

如果您的search.php文件返回HTML,并且假设ajax可以工作(看起来应该可以),那么您正在尝试将内容放入一个不存在的元素中

$(".result").html(data); 
它需要存在于页面上。把这个加在某个地方

<div class="result"></div>
然后将其添加到表单中为按钮命名

<input type="hidden" name="ahosts" value="1" />
<!-- or -->
<button type="submit" name="ahosts" />

我认为您在这里犯了一个错误:

if(isset($_POST['ahosts']))
您检查是否
isset()
POST请求,但实际上您发送了GET请求

阅读文档

因此,如果您将代码更改为:

 if(isset($_GET['ahosts']))

这将返回true,现在您将得到一个响应

我认为您在这里犯了一个错误:

if(isset($_POST['ahosts']))
您检查是否
isset()
POST请求,但实际上您发送了GET请求

阅读文档

因此,如果您将代码更改为:

 if(isset($_GET['ahosts']))

这将返回true,现在您将得到一个响应

表单的输入字段在哪里?使用GET方法并使用POST
isset($\u POST['ahosts'))获取值
大线索<代码>$(“.result”)不匹配任何内容。要有效使用AJAX,您应该将PHP及其对MySQL的请求放在一个单独的文件中。然后,您会向PHP文件发出AJAX请求,该文件与它所拉入的文件相同?因此,
都在ajax调用中返回。。。您需要分离文件,以便您正在调用的文件只返回要添加到页面中的内容。表单的输入字段在哪里?使用GET方法并使用POST
isset($\u POST['ahosts'))获取值。
Big clue<代码>$(“.result”)不匹配任何内容。要有效使用AJAX,您应该将PHP及其对MySQL的请求放在一个单独的文件中。然后,您会向PHP文件发出AJAX请求,该文件与它所拉入的文件相同?因此,
都在ajax调用中返回。。。您需要将文件分开,以便您调用的文件只返回您要添加到页面中的内容。各位,非常感谢非常感谢你的建议为我解决了这个问题——太好了!:)嗨,伙计们,只是一个后续问题。我有一个与上面类似的表单,但是这个表单使用下拉菜单来选择“组”,我使用了与上面相同的ajax逻辑,页面在我得到预期结果的意义上工作,但问题是页面没有刷新,我在上面添加了新代码:嗨,使用ajax的主要原因是为了防止刷新页面。谢谢非常感谢你的建议为我解决了这个问题——太好了!:)嗨,伙计们,只是一个后续问题。我有一个与上面类似的表单,但是这个表单使用下拉菜单来选择“组”,我使用了与上面相同的ajax逻辑,页面在我得到预期结果的意义上工作,但问题是页面没有刷新,我在上面添加了新代码:嗨,使用ajax的主要原因是防止刷新页面