2016-05-17 4 views
0

Ich benutze Javascript für eine Suchfunktion.Erhalten Sie einen eindeutigen Wert für Eingabefeld beim Durchlaufen von Werten aus einer Datenbank

Hier sende ich den Wert eines Eingabefeldes in eine separate PHP-Datei. Auf dieser Seite bearbeite ich eine Tabelle aus einer MySQL-Datenbank. So gibt es zahlreiche brandid Felder. Die Suche funktioniert wie für die erste Zeile der Tabelle. Aber wenn in der ersten Zeile ein Wert ist und wenn ich in der zweiten Zeile suche, erhält er auch den Wert aus der ersten Zeile. Wie kann ich den Wert nur für die Zeile erhalten, die ich gerade tippe? Zu Ihrer Information, in jeder Zeile gibt es ein Feld mit dem Namen DL_Id, das eindeutig ist. Wie kann ich diesen Wert für diese Zeile verwenden, möglicherweise mit einer UND-Klausel?

var searchTxt = $("input[name='brandid']").val(); 

Dies ist, wie ich Schleife von der db

$query=mysqli_query($link,"SELECT * FROM dl_commfactory_2 LIMIT 35"); 
while($row = mysqli_fetch_array($query)){ 
    $dlid = $row['DL_Id']; 
    $brandid = $row['Brand_Id']; 
    ?> 
    <tr> 
    <td><input type="text" name="dlid" readonly value="<?php echo $dlid; ?>" size="2"></td>  
    <td><input type="text" name="brandid" value="<?php echo $brandid; ?>" list="brandlist" id="output" onkeyup="searchbrand()" > 
    <datalist id="brandlist" name="taskoption"> 
     <option> </option> 
    </datalist> </td> 
    <?php } ?> 
+0

entweder ausschließen die alle bereit über die Abfrage oder die Ausgabe ausgewählt –

+0

@Dagon, wie mache ich das? –

Antwort

0

Zum einen die Forderung nach searchBrand ändern(), um searchBrand (dieser), so dass Sie das Element senden an die Funktion bearbeitet .

function searchBrand(el){ 
    var brandIdElement = $(el); //The element being edited 
    var searchTxt = brandIdElement.val(); //The new value sent 
    var searchTxtDL = brandIdElement.parents('tr').find('input[name="dlid"]').val(); //The dlid element's value in the same line 

    //Send the value of the dlid too 
    $.post("search-brand-vw.php", {searchVal: searchTxt, searchValDL: searchTxtDL}) 
    .done(function(brandlist) { 
     //Get the brandList element for the specific line 
     var brandListEl = brandIdElement.parents('tr').find('datalist[name="taskoption"]'); 
     brandListEl.html(brandlist); 
    }); 

} 

Es gibt ein paar Performance-Optimierungen, die umgesetzt werden können, aber wenn die Leistung hier kein Thema ist, dann sollte es in Ordnung sein:

Dann die searchBrand Funktion entsprechend ändern.

+0

warum schicke die dlid auch an das andere php? –

+0

"Zu Ihrer Information, es gibt in jeder Zeile ein Feld namens DL_Id, das eindeutig ist. Wie kann ich diesen Wert für diese Zeile verwenden, vielleicht mit einer UND-Klausel?" - Denken Sie bei der Manipulation der Abfrage mit diesem Wert, ich stelle mir vor, dass dies der beste Weg wäre. Senden Sie den Wert an PHP und verwenden Sie es in einem beliebigen Filter direkt dort. –

Verwandte Themen