2017-09-15 10 views
1

複数のレコードが表示されたときに、データレコードが1のとき、複数のレコードがデータを表示し、私はあなたの問題を考えるjavascriptのコードajaxは動作しておらず、PHPデータを表示していません

function searchh() 
{ 
    var type = $("input[name='type']:checked").val(); 
    var searchhh = $(".myButton option:selected").text(); 
    debugger; 
    $.ajax({ 
        url: 'ajaxx.php', 
        type: "POST", 
        data: {'searchType':type, 'search':searchhh}, 
        success: function (data) { 
         var duce = jQuery.parseJSON(data); 
         alert(duce.title); 
        } 
       }); 
} 

答えて

1

を動作しませ付加し、その後ではない来るときに成功したデータを追加

<?php 
    include 'database.php'; 
    session_start(); 

    $post = $_POST; 


     $search = $post['search']; 
     $searchType = $post['searchType']; 

     if ($searchType == 'all') 
       {$sql = "SELECT DISTINCT title FROM hadees WHERE title LIKE '$search%' AND (type='Bukhari' OR type='Muslim') ";} 
      else 
       {$sql = "SELECT DISTINCT title FROM hadees WHERE title LIKE '$search%' AND type='$searchType' ";} 

     $result = mysqli_query($db,$sql); 

     if ($result->num_rows > 0) { 
      while($row = $result->fetch_assoc()) { 
       $row['title']; 
       echo json_encode($row); 
      } 
     } else 
      { echo "Not Found Result" ; } 


?> 

ajaxx.php whileループにあります。各行を1つずつエンコードするのではなく、全体としてこのようにエンコードする必要があります。

 $myResults = []; 
     while($row = $result->fetch_assoc()) { 
      $row['title']; 
      $myResults[] = $row; 
     } 
     echo json_encode($myResults); 
0

ループ内でecho json_encode($row);を使用して無効なJSONを生成しています。

行の配列を作成して表示するようにしてください。

if($result->num_rows > 0) 
{ 
    $output = array(); 
    while($row = $result->fetch_assoc()) 
    { 
     output[] = $row; 
    } 
    if($searchType == 'all') 
    { 
     echo json_encode($output); 
    } 
    else 
    { 
     echo json_encode(current($output)); // print just one 
    } 
} 
関連する問題