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

时间:2015-08-26 12:17:34

标签: javascript php jquery ajax

我正在尝试运行一个php脚本,只需点击一下按钮即可从数据库中提取数据。我想使用ajax,因此页面不会刷新。我已经使用正常的帖子/提交进行了页面刷新测试,但它可以工作,但我在使用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>

2 个答案:

答案 0 :(得分:4)

如果你的search.php文件返回了HTML,并假设ajax工作(看起来应该如此),那你就试图把内容放到一个不存在的元素中。

$(".result").html(data); 

它需要存在于页面上。将它添加到某处。

<div class="result"></div>

但是,由于此条件if(isset($_POST['ahosts']))请求表单中的参数不使用错误的请求方法,因此您的PHP不会返回任何数据。

您正在使用GET($.get()),因此在PHP中需要阅读

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

然后在表单中添加,为该按钮添加名称

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

答案 1 :(得分:0)

我认为你在这里犯了错误:

<div ng-style="{'background-image': 'url(/images/' + backgroundImageUrl + ')'}"></div>

您检查ng-style POST请求是否实际发送了GET请求...

阅读文档https://api.jquery.com/jquery.get/

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

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

这将返回true,现在您将收到回复