POST关键字过滤PHP SQL - POST输入不工作


POST keyword filter to PHP SQL - POST input not working

我正试图从前端输入POST关键字搜索,并在SQL查询中使用它,但它似乎不承认我的帖子值。

注意:未定义索引:关键字inC:'wamp64'www'SQLPractice'filter-table.php on line 19

整个PHP

  $host = "localhost";
  $user = "root";
  $pass = "";
  $databaseName = "practice_db";
  $tableName = "t_cars";
  $conn = mysqli_connect($host,$user,$pass,$databaseName);
  $dbs = mysqli_select_db($conn, $databaseName);
  $filter = mysqli_real_escape_string($conn, $_POST['keyword']);
  $sql = 'SELECT *
          FROM   "$tableName"
          WHERE (c_id LIKE "$filter" OR
                 c_brand LIKE "$filter" OR
                 c_model LIKE "$filter" OR
                 c_year LIKE "$filter" OR
                 c_color LIKE "$filter")';

  $result = mysqli_query($conn, $sql); 
  if (!$result) {
    die('Invalid query: ' . mysql_error());
  }         //query
  $array = mysqli_fetch_all($result);                          //fetch result    
  echo json_encode($sql);

前端节选

...<div id="filter">
        <h1>Filter</h1>
        <form name="form" action="http://localhost/SQLPractice/filter-table.php" method="post">
            <input type="" name="keyword" id="filter">
        </form>
        <br>
        <button>Query DB</button>
    </div>
</body>
<script type="text/javascript">
    var filter = document.getElementById('filter'),
        button = document.getElementsByTagName('button')[0];
    button.addEventListener("click", function(){filterDatabase();});
    function filterDatabase(){
        console.log("filterDatabase()");
        console.log($("input").val());
        $.ajax({                                      
          url: 'http://localhost/SQLPractice/filter-table.php',                  //the script to call to get data          
          data: $("input").val(),                        //you can insert url argumnets here to pass to api.php
          method: "POST",                           //for example "id=5&parent=6"     
          success: function(data)          //on recieve of reply
          {
            //Breaking CSV into array;
            var json = data;
            $("#filteredContent").html(data);

下面的输入框id为id="filter"

<input type="" name="keyword" id="filter">

所以你可以获取并发送输入类型的值

 data: {keyword:$("#filter").val()},