douquanjie9326 2015-11-04 12:00
浏览 48
已采纳

sql响应与ajax过滤器无法正常工作

My first contact with ajax. I have modify this tutorial. However sql response is always not showing any record. I made var_dump of $result, but only got bool(false). Where I made mistake? Is any better way of making dynamic filters?

My function, simple table:

function showRoadMap() {
$conn.... //cut connection with database

$q = $_GET['q'];
$sql = "SELECT * FROM roadmap WHERE status={$q}";
$result = $conn->query($sql);

    if ($result->num_rows > 0) {
        echo '
        <table class="showGrid">
                <tr>
                    <td>Name</td>
                    <td>Status</td>
                </tr>';
        while($row = $result->fetch_assoc()) {

            echo '<tr><td>'.$row['name'].'</a></td>
                  <td>'.$row['status'].'</td></tr>';
        }
        echo '</table>';
    }
    else
        echo 'No record found';
    }
}

My php file:

<script>
function showFilter(str) {
if (str == "") {
    document.getElementById("txtHint").innerHTML = "";
    return;
} else { 
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","roadmapShow.php?q="+str,true);
    xmlhttp.send();
}
}
</script>
<form>
<select name="status" onchange="showFilter(this.value)">
<option value="">Select a status:</option>
<option value="proposal">proposal</option>
<option value="approved">approved</option>
<option value="done">done</option>
<option value="refuse">refuse</option>
</select>
</form>
<div id="txtHint"></div>

and the last file: roadMapShow.php

<?php showRoadMap(); ?>
  • 写回答

2条回答 默认 最新

  • dongli2000 2015-11-04 12:29
    关注

    Get rid of third file or setup proper include and parameter passing. I fixed your code in two files. There is no change in "My php file", and the other two is combined below:

    roadmapShow.php:

    <?php 
        $q = $_GET['q'];
    
        function showRoadMap($q) {
            $conn.... //cut connection with database
            $sql = "SELECT * FROM roadmap WHERE status={$q}";
            $result = $conn->query($sql);
    
            if ($result->num_rows > 0) {
                echo '
                <table class="showGrid">
                        <tr>
                            <td>Name</td>
                            <td>Status</td>
                        </tr>';
                while($row = $result->fetch_assoc()) {
    
                    echo '<tr><td>'.$row['name'].'</a></td>
                          <td>'.$row['status'].'</td></tr>';
                }
                echo '</table>';
            }
            else
                echo 'No record found';
        }
    
        showRoadMap($q); 
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 深度学习残差模块模型
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)