2017-05-18 1 views
0

Ich habe Probleme mit Ajax Ergebnisse beim Versuch, einige ID zu suchen zum Beispiel: 0205P, 04066H etc, es gibt mir das Ergebnis korrekt, aber wenn ich es anklicke, in Eingabe ist eine andere Nummer wie 616, 7 , 13 ... So funktioniert alles perfekt, außer wenn meine Suche mit 0 (null) beginnt. Meine ID in der Datenbank (MYSQL) ist Varchar (8). Hier ist mein Code:jQuery - Ajax zurück unbekannte Zahlen

dob.php

<input type="text" name="konto1" id="konto" class="form-control konto" value="<?php if(isset($_POST['konto1'])) echo $_POST['konto1']; ?><?php if(isset($_GET['konto1'])) echo $_GET['konto1'];?>" /> 
          <div class="boja"><div style="margin-top: 0px" id="selectKonto" class="list-group"></div></div> 

<script> 
        // ajax call 
        $('#konto').keyup(function() { 
         var konto = $(this).val(); 
         $.ajax({ 
          type: 'POST', 
          url: 'konto.php', 
          data: { 
           search: konto 
          }, 
          beforeSend: function() { 
           $('#konto').css("background", "#FFF url(LoaderIcon.gif) no-repeat 165px"); 
          }, 

          success: function(data) { 
           if (!data.error) { 
            // var reply = data.replace(/\s+/, ""); 
            $('#selectKonto').show(); 
            $('#selectKonto').html(data); 

            $("#konto").css("background", "#FFF"); 

           } 
          } 
         }); 
        }); 
        function selectKonto(val) { 
       $("#konto1").text(val); 
       $("#selectKonto").hide(); 

      } 
</script> 

konto.php

if(!empty($konto)) { 
    $q = "SELECT * FROM konto WHERE ... LIMIT 10"; 
    $result = $db->query($q); 

    if(!$result){ 
     die('QUERY FAILED' . $db->error); 
    } 
    if($result->num_rows > 0){ 
     while($row = $result->fetch_assoc()){ 

     echo '<div><font size="2em"><a href="#" class="list-group-item konto" style="width: 555px;border: 1px solid grey;" 
       onclick="selectKonto(\''.trim($row['kp_sif']).'\')">... 
<script> 
    $('.konto').click(function() {  
    var text = $(this).html(); 
    $('.ime-konto').html(text); 
    $("#selectKonto").hide(); 
    }); 
</script> 

P. S. Der Feldtyp in der Datenbank muss varchar bleiben, ich kann ihn nicht in INT ändern.

+0

So ist die führende Null, die es zum Server macht? Sie müssen herausfinden, wo es gelöscht wird, entweder auf der Clientseite oder auf der Serverseite. – epascarello

+0

* wenn ich es anklicke, in der Eingabe ist eine andere Zahl wie 616, 7,13 ... Also * nicht viel klar – JYoThI

+0

hast du versucht mit 'var text = $ (this) .text(); $ ('. ime-konto'). Text (Text); 'in konto.php? Außerdem sehe ich kein Element mit der Klasse 'ime-konto', aber es sollte in deinem Code sein, denke ich. Hinweis: Zeigen Sie niemals POST- oder GET-Variablen wie diese an, bevor Sie gefährliche Werte gefiltert haben. – Kaddath

Antwort

0

Also, es funktioniert gut mit Anführungszeichen in PHP.

onclick="selectKonto(\''.trim($row['kp_sif']).'\')"> 

Offensichtlich hatte ich anderes Problem in der Syntax.