Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于下拉选择显示表格结果_Php_Jquery_Html_Sql Server - Fatal编程技术网

Php 基于下拉选择显示表格结果

Php 基于下拉选择显示表格结果,php,jquery,html,sql-server,Php,Jquery,Html,Sql Server,我有一个下拉列表,由数据库中的一列填充。在选择时,我希望它显示列等于下拉列表中所选值的任何表格结果。每当我选择一个值时,我都可以得到要显示的表标题,但是没有显示其他数据 我正在执行一个echo$q,它正在返回正确的值。因此,它似乎获得了所选的值并将其正确地传递给test1.php,因此我猜我的test1.php脚本中一定有什么地方出错了 如何修复此问题,以便显示具有与所选内容相等的列产品报告代码的数据库行 HTML/PHP: <html> <head> <scrip

我有一个下拉列表,由数据库中的一列填充。在选择时,我希望它显示列等于下拉列表中所选值的任何表格结果。每当我选择一个值时,我都可以得到要显示的表标题,但是没有显示其他数据

我正在执行一个
echo$q
,它正在返回正确的值。因此,它似乎获得了所选的值并将其正确地传递给
test1.php
,因此我猜我的
test1.php
脚本中一定有什么地方出错了

如何修复此问题,以便显示具有与所选内容相等的列
产品报告代码
的数据库行

HTML/PHP:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
function showUser(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 (this.readyState == 4 && this.status == 200) {
                document.getElementById("txtHint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET","test1.php?q="+str,true);
        xmlhttp.send();
    }
}
</script>
</head>
<body>

<form>
<section id="rep_dropdown">
    <select onchange="showUser(this.value)" name="users">       
        <option value="">Product Report Code</option>
        <?php foreach($repcode->fetchAll() as $reportcode) { ?>
            <option value="<?php echo $reportcode['Product Report Code'];?>"><?php echo $reportcode['Product Report Code'];?></option>
        <?php } ?>
    </select>
</section>
</form>
<br>
<div id="txtHint"><b>Person info will be listed here...</b></div>

</body>
</html>

函数showUser(str){
如果(str==“”){
document.getElementById(“txtHint”).innerHTML=“”;
回来
}否则{
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“txtHint”).innerHTML=this.responseText;
}
};
open(“GET”、“test1.php?q=“+str,true”);
xmlhttp.send();
}
}
产品报告代码

人员信息将在此处列出。。。
test1.php:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>

<?php
$q = intval($_GET['q']);
echo $q;

  $host="xxxxxxxxx"; 
  $dbName="xxxxxxxxx"; 
  $dbUser="xxxxxxxxxxxxxx"; 
  $dbPass="xxxxxx";

  $dbh = new PDO( "sqlsrv:server=".$host."; Database=".$dbName, $dbUser, $dbPass);

$sql="SELECT * FROM vProducts WHERE [Product Report Code] = '".$q."'";
$result = sqlsrv_query($dbh,$sql);

?>



<table id="skuTable" cellspacing="5" class="sortable">
        <tr class="ui-widget-header">
            <th style="display: none">Product ID</th>
            <th class="skuRow">Major Category</th>
            <th class="skuRow">Minor Category</th>
            <th class="skuRow">Report Code</th>
            <th class="skuRow">SKU</th>
            <th class="skuRow">SKU Description</th>
            <th class="skuRow">SKU Status</th>
            <th class="skuRow">Create Date</th>
            <th class="skuRow">Group ID</th>
            <th class="sorttable_nosort">Edit</th>
        </tr>


        <?php while($row = sqlsrv_fetch_array($result)) { ?>

        <tr class="Row" data-code="<?php echo $row['Product Report Code']?>">
            <td style="display: none" class="prod_id" id="product_id-<?php echo intval ($row['Product_ID'])?>"><?php echo $row['Product_ID']?></td>
            <td class="major_cat" id="major_cat-<?php echo intval ($row['Major Category'])?>"><?php echo $row['Major Category']?></td>
            <td class="minor_cat" id="minor_cat-<?php echo intval ($row['Minor Category'])?>"><?php echo $row['Minor Category']?></td>
            <td class="rep_code" id="rep_code-<?php echo intval ($row['Product Report Code'])?>" align="center"><?php echo $row['Product Report Code']?></td>
            <td class="sku" id="sku-<?php echo intval ($row['SKU'])?>" align="center"><?php echo $row['SKU']?></td>
            <td class="sku_desc" id="sku_desc-<?php echo intval ($row['SKU Description'])?>"><?php echo $row['SKU Description']?></td>
            <td class="sku_status" id="sku_status-<?php echo intval ($row['SKU Status'])?>" align="center"><?php echo $row['SKU Status']?></td>
            <td class="create_date" id="create_date-<?php echo intval ($row['Date'])?>" align="center"><?php echo $row['Date']?></td>
            <td class="group_id" id="group_id-<?php echo intval ($row['Group_ID'])?>" align="center"><?php echo $row['Group_ID']?></td>
            <td><input type="button" class="edit" name="edit" value="Edit" onclick="enable_value(this)"></td>
        </tr>

    <?php } ?>

</table>


</body>
</html>

我不确定sql server是否接受这样的表列名称
产品报告代码

如果是真的,那么你的连接有问题

$dbh = new PDO( "sqlsrv:server=".$host."; Database=".$dbName, $dbUser, $dbPass);

$sql="SELECT * FROM vProducts WHERE [Product Report Code] = '".$q."'";
$result = sqlsrv_query($dbh,$sql);
您使用的扩展与扩展完全不同

您必须选择一种连接到数据库的方式

这是一个完整的PDO示例:

$dbh = new PDO( "sqlsrv:server=".$host."; Database=".$dbName, $dbUser, $dbPass);

$sql="SELECT * FROM vProducts WHERE [Product Report Code] = :placeholder";
$stm = $dbh->prepare($sql);
$result = $stm->execute(array("placeholder" => $q);
编辑

您还需要更新此行:

<?php while($row = sqlsrv_fetch_array($result)) { ?>

致:



这是有道理的,但是我的表中的结果仍然没有显示我已经更新了我的答案,如果出现任何数据库错误,请尝试调试,并在此处提供它。嘿,它工作了!令人惊叹的我唯一的另一个问题是,每当我在下拉列表中选择一个值,例如
0401
0110
,它就会返回
401
110
的值……你知道为什么它会切断前一个0吗?
<?php while($row = $stm->fetch()) { ?>