2017-01-28 2 views
0

Ich versuche, eine Variable von meinem Javascript-Code auf die Server-Seite PHP-Code übergeben. Ich weiß, dass dies über einen Ajax-Anruf getan werden muss, von dem ich glaube, dass ich es richtig gemacht habe, aber ich habe es nicht verstanden. Hier ist mein Code, ich habe bisher:Jquery- Pass Javascript-Variable zu PHP AJAX

JQuery

$(document).ready(function(){ 
    $(".search-box").keyup(function(){ 
     $.ajax({ 
     type: "POST", 
     url: "readCountry1.php", 
     data: { cat: $(this).val() }, 
     beforeSend: function(){ 
      $(".search-box").css("background","#FFF"); 
     }, 
     success: function(data){ 
      $(".suggesstion-box").show(); 
      $(".suggesstion-box").html(data); 
      $(".search-box").css("background","#FFF"); 
     } 
     }); 
    }); 
}); 

function selectCountry(val) { 
    $(".search-box").val(val); 
    $(".suggesstion-box").hide(); 
} 

HTML

<form> 
    <div class="frmSearch"> 
     <input type="text" class="search-box" placeholder="Select Category" /> 
     <div class="suggesstion-box"></div> 
    </div> 
    <?php 
    if(isset($_POST['cat'])){ 
    ?> 
     <div class="frmSearch1"> 
      <input type="text" class="search-box1" placeholder="Enter Location" /> 
      <div class="suggesstion-box1"></div> 
     </div> 
    <?php 
    } 
    ?> 
</form> 

In obigem Code ich will zweites Eingabefeld angezeigt wird, wenn ein Wert in ersten ausgewählt Box. Und hier ist mein

readCountry1.php

<ul class="country-list"> 
    <?php 
     require_once("dbcontroller.php"); 
     if(!empty($_POST["cat"])) { 
      $query ="SELECT cat FROM catlist WHERE cat like '%$_POST[cat]%' UNION SELECT scat FROM catlist WHERE scat like '%$_POST[cat]%' ORDER BY cat"; 
      $result = mysqli_query($mysqli, $query); 
      if(!empty($result)) { 
       while($row=mysqli_fetch_array($result)) 
       { 
    ?> 
        <li onClick="selectCountry('<?php echo $row["cat"]; ?>');"><?php echo $row["cat"]; ?></li> 
    <?php 
       } 
      } 
     } 
    ?> 
</ul> 

Ich versuche, meine JavaScript-Variable "cat" zu PHP ($ cat) passieren, aber ich habe auf der Straße irgendwo falsch gegangen.

+3

Sie den Ajax-Request als POST Einstellung, aber Sie liefern das Datenargument als String. Ich bin mir nicht sicher, was das für ein Verhalten ist, aber soll man nicht stattdessen ein Objekt pas- sen? –

+1

'data: {cat: $ (this) .val()},' – Jeff

+0

@Chris Haben Sie nicht genug Wissen über AJAX ... Können Sie mir Lösung von diesem sagen ... Alles was ich will, ist zweiten Text anzuzeigen Box, wenn Benutzer einen Wert in der ersten Box auswählen ... – Ashish

Antwort

0

In Ajax eingestellten Daten in Objektformat:

data: { cat: $(this).val() }, 

Und

Senden Sie Ihre Antwort Formularserver so ...

if(!empty($result)) { 
    $data = "<ul>"; 
       while($row=mysqli_fetch_array($result)) 
       { 
        $cat = $row["cat"]; 
        $data.= "<li onClick='selectCountry(".$cat.")'>".$cat."</li>"; 
       } 
    $data.="</ul>";   
      } 
      echo $data; 
+0

Hallo, Ich habe Änderungen vorgenommen, aber Code funktioniert nicht, auch nachdem ich meine Ajax und readCountry1.php..Text-Box nicht angezeigt Cat-Wert bei der Auswahl ... – Ashish