2017-05-24 14 views
-3

Ich habe diesen Code: Verbindung zur Datenbankerhalten Daten aus der Datenbank nicht mit Ajax arbeiten

<?php 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $conn = new mysqli("localhost", "root", "", "jquery"); 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

jetzt habe ich bereits Daten indatabase in Tabelle Stadt Hexe nannte es nur id und ab und dies ist der Code

if (isset($_POST['city'])) { 
     $sql = "SELECT * FROM city"; 

     $result = $conn->query($sql); 
     if ($result->num_rows > 0) { 
      $results = []; 
      while($row = $result->fetch_assoc()) { 
       $results[] = $row; 
      } 
      echo json_encode($Results); 
     } 
     else 
     { 
      echo "empty"; 
     } 
    } 

hier ist der hTML-Teil:

<select required="required" id="city"> 
          <option disabled selected value=''> select a city </option> 
         </select> 

und hier ist die Funktion:

function city() { 
      $.ajax({ 
       "url": "divs.php", 
       "dataType": "json", 
       "method": "post", 
       //ifModified: true, 
       "data": { 
        "F": "" 
       } 
      }) 
      .done(function(data, status) { 
       if (status === "success") { 
        for (var i = 0; i < data.length; i++) { 
         var c = data[i]["city"]; 
         $('select').append('<option value="'+c+'">'+c+'</option>'); 
        } 

       } 
      }) 
      .always(function() { 

      }); 
     } 

so das Problem ist, dass es nichts in der Auswahlliste ist immer leer, jede Hilfe? u danken

+0

'$ results' nicht das gleiche wie' $ Results' ist – Andreas

+0

Vielleicht in Ihrem PHP-Teil, in dem wir die Variable $ Ergebnisse haben u eine Kapital $ Ergebnisse haben, die sein könnte das Problem? – websoftwares

Antwort

0

Sie haben $results verwendet, aber während Echo Sie $Results verwenden, die eine andere Variable so verwendet wird,

echo json_encode($results); 

Auch Sie sagen, dass city nur id und desc so in JS-Code Verwendung hat desc statt city

$.ajax({ 
    type:'POST', 
    url: 'divs.php', 
    data: {city:1}, 
    success:function(data) { 
     var res = JSON.parse(data); 
     $(res).each(function(){ 
      var c = this.city_name; // use city_name here instead of city 
      $('select').append('<option value="'+c+'">'+c+'</option>'); 
     }); 
    } 
}); 
+1

Wenn dies das einzige Problem ist, warum nicht wegen eines Tippfehlers für die Schließung gekennzeichnet? – Andreas

+0

nein es ist nicht das einzige Problem @Andreas – adamspaul

+0

@adamspaul Wenn Sie das Problem (s) wissen, warum stellen Sie die Frage überhaupt? O.o – Andreas

0

Ein kleiner Fehler ist hier: Sie verwenden

echo json_encode($Results); 

statt

echo json_encode($results); 

In PHP Variablennamen sind Groß- und Kleinschreibung. Verwenden Sie für alle Variablen den richtigen Fall.

0

Sie erhalten nicht die Antwortdaten in HTML <SELECT> TAG hier ist, was Sie tun können.

Bild Tabelle city table image

HTML FILE Code:

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
</head> 
<body> 
    <form action="" method="post"> 
     <select> 

     </select> 
    </form> 
<script> 
$(document).ready(function(){ 
    city(); 
}); 

function city(){ 
    $.ajax({ 
      type:'POST', 
      url: 'divs.php', 
      data: {city:1}, 
      success:function(data){ 
       var res = JSON.parse(data) 

       for(var i in res){ 
        var showdata = '<option value="'+res[i].city_name+'">'+res[i].city_name+'</option>'; 

        $("select").append(showdata); 
       } 
      } 
     }); 
} 
</script> 
</body> 
</html> 

ist hier die PHP CODE

`

<?php 
    $conn = new mysqli('localhost','root','','demo'); 

    if($conn->connect_error){ 
     die ("Connection Failed".$conn->link->error); 
    } 

    if(isset($_POST['city'])){ 
     $sql = "SELECT * FROM city"; 

     $result = $conn->query($sql); 

     if ($result->num_rows > 0) { 
      while($row = $result->fetch_assoc()) { 
       $results[] = $row; 
      } 
      echo json_encode($results); 
     } 
     else 
     { 
      echo "no city available"; 
     } 
    } 
?> 

`

hier die Ausgabe IMAGE

OUTPUT RESULT

Verwandte Themen