Heim  >  Fragen und Antworten  >  Hauptteil

Wenn Ajax Daten aus der Datenbank in PHP anfordert und sie mithilfe von JSON an Javascript zurückgibt, können einige Daten nicht angezeigt werden. Können Sie dieses Problem bitte lösen?

Was ich geschrieben habe, ist eine Filterfunktion, um Informationen aus der Datenbank in PHP anzufordern und sie mithilfe von JSON an JavaScript zurückzusenden. Bei der Eingabe relevanter Inhalte können jedoch einige Filter aus der Datenbank gelesen werden, andere jedoch nicht Denken Sie nach. Fragen Sie, wie Sie das Problem lösen können.

Javascript-Code:

submitElement.addEventListener('click',function(event){
     if(searchDescription === 1){
         search = filterByTitleElement.value;
     }else if(searchDescription === 2){
         search = filterByDescriptionElement.value;
     }

     //将输入的搜索信息传递给php文件,让其再数据库中找到相应的匹配项。

         var xmlhttp;
         if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
             xmlhttp = new XMLHttpRequest();
         }
         else {// code for IE6, IE5
             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         xmlhttp.onreadystatechange = function () {
             if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                 a = eval('(' + xmlhttp.responseText + ')');
                                  tableDisplay.innerHTML = a.length;
                 }
             }
         };
         xmlhttp.open("GET", "SearchDeal.php?inputMessage=" + search + "&searchdescription=" + searchDescription, true);
         xmlhttp.send();
 });

 function pageForDisplay(number){
     var result = "<thead><tr><td>Search Result</td></tr></thead><tr><td><table border=\"1\" id=\"inside\">";
     for(var i = 0; i < 5 ;i++){
         result = result + " <tr><td><p class=\"photoInside\"><a href=\"DetailsPage.php\"><img src=\"travel-images/square-medium/" + a[number + i]['PATH'] +"\"></a>" +
             "<h3><a href=\"DetailsPage.php\">" + a[number + i]['Title'] +"</a></h3>" +
             "<p>" + a[number + i]['Description'] + "</p>" +
             "</p></td></tr>";
     }
      result = result + "</table></td></tr>";
     return result;

php-Code:

     $messageForSearch = $_GET["inputMessage"];
$messageForNumber = $_GET["searchdescription"];
$conn = mysqli_connect("localhost","root","","travel");
if($messageForNumber == 1){
    $sql = "SELECT ImageID,Title,Description ,PATH FROM travelimage where Title REGEXP '[$messageForSearch]'";
}else if($messageForNumber == 2){
   $sql = "SELECT ImageID,Title,Description ,PATH FROM travelimage where Description REGEXP '[$messageForSearch]'";
}
$a = mysqli_query($conn,$sql);
$json = mysqli_fetch_all($a,MYSQLI_ASSOC);
//print_r($json);
echo json_encode($json);
}

Gemäß dem obigen Code ändert sich a.length manchmal, manchmal jedoch nicht (normalerweise, wenn zu viele gefilterte Ergebnisse vorhanden sind). Wenn ich jedoch die letzte Codezeile in PHP durch print_r($json) ersetze, erfolgt eine Ausgabe.

过去多啦不再A梦过去多啦不再A梦2663 Tage vor877

Antworte allen(1)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-06-13 09:24:04

    json要求使用utf8编码,检查一下数据库取到的数据是否都是utf8编码的。

    Antwort
    0
  • StornierenAntwort