php - 使用 sqlsrv 和 $.ajax 进行实时搜索

标签 php jquery ajax

为什么当我开始在搜索字段中输入内容时,结果总是出现注意:未定义索引未找到数据

这是我的 HTML 代码:

<body>
   <div class="container">
   <br />
     <div class="row">
       <div class="col-lg-6">
        <div class="input-group">
            <span class="input-group-btn">
                <button class="btn btn-secondary" 
                  type="button">Search</button>
            </span>             
            <input type="text" class="form-control" name="search_text"
             id="search_text" placeholder="search by a name">
         </div>
        </div>
       </div>
       <br />
     <div id="result"></div>
    </div>


   <script type="text/javascript">
     $(document).ready(function() {
      $('#search_text').keyup(function() {
        var search = $(this).val();
            $('#result').html('');
            $.ajax({
                url:"fetch.php",
                method:"POST",
                data:search,
                dataType:"text",
                success:function(data){
                    $('#result').html(data);
                }
            });
          });
       });
      </script>
     </body>
    </html>

PHP 代码:

<?php

    $serverName = "myServer";
    $connectionInfo = array( "Database"=>"myTable", "Uid" => "myUser", "PWD" => "myPassword");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    $sql = "SELECT * FROM(SELECT AB.Bezeichnung1 AS Name,

    CASE FC.Ebenen 
        WHEN 1 THEN FC.Komponente1 
        WHEN 2 THEN FC.Komponente2 
        WHEN 3 THEN FC.Komponente3 
    END AS Farbe,

    GC.Bezeichnung AS Groesse,
    SKU.KommLagerplatz AS Position, SKU.Ueberlagerbereich

    FROM Artikel A 
        LEFT JOIN ArtikelBezeichnungen AB ON (A.Mandant=AB.Mandant AND A.HCode=AB.HCode AND A.Style = AB.Style AND AB.Sprache='DE')
        INNER JOIN ArtikelVariantenCSG CSG ON( A.Mandant= AB.Mandant AND A.HCode=AB.HCode AND A.Style = AB.Style)
        INNER JOIN ArtikelFarbcodes FC ON (CSG.Farbcode = FC.Farbcode AND CSG.Mandant=FC.Mandant)
        INNER JOIN ArtikelVariantenSKU SKU ON(SKU.Mandant=CSG.Mandant AND SKU.HCode=CSG.HCode AND SKU.Style=CSG.Style AND SKU.Farbcode=CSG.Farbcode)
        INNER JOIN ArtikelGroessencodes GC ON(GC.Mandant=SKU.Mandant AND GC.Groessencode= SKU.Groessencode)) AS QRY WHERE Name LIKE '%".$_POST["search"]."%'";

    $result = sqlsrv_query($conn, $sql);
    if($result === false) {
        die( print_r(sqlsrv_errors(), true) );
    }

    if(sqlsrv_num_rows($result) > 0){
        $output .='<h4 align="center">Search Result</h4>';
        $output .='<div class="table-responsive">
                        <table class="table table bordered">
                        <tr>
                            <th>Name</th>
                            <th>Farbe</th>
                            <th>Groesse</th>
                            <th>Position</th>
                        </tr>';
        while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
            $output .=  '<tr>
                            <td>'.$row["Name"].'</td>
                            <td>'.$row["Farbe"].'</td>
                            <td>'.$row["Groesse"].'</td>
                            <td>'.$row["Position"].'</td>
                        </tr>';
        }
        echo $output;
    }
    else{
        echo'Data Not Found';
    }


    sqlsrv_free_stmt($result);
?>

我添加了 sqlsrv 驱动程序以连接到 MSSQL。这样我就可以建立到 SQL 数据库的连接。如何在 $.ajax({}) 和 PHP 之间建立连接存在问题。

感谢您的帮助

最佳答案

更改以下行:

data:search,

data:{
    search: search
}

然后重试。

说明: data 是一个对象,其中包含key : value 对。喜欢:

data: { key1: value1 }

你可以在 php 中获取它的值,例如:

$data = $_POST['key1'];  // here `$data` contains `value1` in it

关于php - 使用 sqlsrv 和 $.ajax 进行实时搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43062504/

相关文章:

javascript - HTML/PHP/JS/MYSQL -- 如何通过表单将相当大的 DIV 内容传递给 MySQL?

jquery - 如何在门户中的 Azure BLOB 存储中设置 CORS?

php - 使用 in 子句和字符串创建准备好的语句

javascript - 使用 DOM 创建跨度

javascript - 当我在javascript中按下新字符时如何替换最后一个特殊字符

javascript - 输入标签,如何在事件中将数字重置为1

php - 一个查询中的变量 WHERE

php - 在 Stripe 中使用优惠券代码

php - 如何显示每个部门的讲师总数? SQL查询

jquery - kendo ui网格弹出隐藏按钮