2016-06-28 6 views
0

Ich versuche, eine Stichwortsuche aus einer Eingabe am Front-End POST und verwenden Sie es in einer SQL-Abfrage, aber es ist nicht erkennen, meine Post-Wert scheint es.POST-Schlüsselwortfilter zu PHP SQL - POST-Eingabe funktioniert nicht

Hinweis: Nicht definiert Index: Schlüsselwort in C: \ wamp64 \ www \ SQLPractice \ Filter-Table.php auf Leitung 19

GANZE 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); 

FRONT END EXCERPT

...<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); 
+0

Für mich zu bekommen und senden es sieht aus wie das, was Sie versuchen, den Einsatz zu tun ist, POST GET nicht. –

Antwort

2

Eingabefeld-ID ist id="filter" unter

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

SO können Sie den Wert des Eingabetypen als

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

Hallo Saty, danke für den Kommentar. Nach Ihrer Änderung bekomme ich eine "ungültige Abfrage:" –