2017-11-05 2 views
0

Dieser Code, ich habe die Durchsuchungsnummer durchsucht. Der gesamte Code ist korrekt und läuft ordnungsgemäß, aber wenn keine Übereinstimmungsdaten gefunden werden. Es wird keine Nachricht angezeigt. Also, ich möchte eine Nachricht anzeigen, wenn keine Übereinstimmungsdaten gefunden werden wie "Keine solchen Daten gefunden". Wie kann ich das tun? bitte helfen Sie, dieses Problem zu lösen, Mein Code ist unten.Keine Datenmeldung Anzeigen

index.php

<!DOCTYPE html> 
<html> 
<head> 
    <title>How to return JSON Data from PHP Script using Ajax Jquery</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    <style> 
    #result { 
    position: absolute; 
    width: 100%; 
    max-width:870px; 
    cursor: pointer; 
    overflow-y: auto; 
    max-height: 400px; 
    box-sizing: border-box; 
    z-index: 1001; 
    } 
    .link-class:hover{ 
    background-color:#f1f1f1; 
    } 
    </style> 
</head> 
<body> 
    <br /><br /> 
    <div class="container" style="width:900px;"> 
    <h2 align="center">How to return JSON Data from PHP Script using Ajax Jquery</h2> 
    <h3 align="center">Search Employee Data</h3><br /> 
    <div class="row"> 
    <div class="col-md-4"> 
    <input type="text" name="employee_list" id="employee_list" class="form-control"> 

    </div> 
    <div class="col-md-4"> 
    <button type="button" name="search" id="search" class="btn btn-info">Search</button> 
    </div> 
    </div> 
    <br /> 
    <div class="table-responsive" id="employee_details" style="display:none"> 
    <table class="table table-bordered"> 
    <tr> 
    <td width="10%" align="right"><b>Name</b></td> 
    <td width="90%"><span id="name"></span></td> 
    </tr> 
    <tr> 
    <td width="10%" align="right"><b>Address</b></td> 
    <td width="90%"><span id="address"></span></td> 
    </tr> 

    <tr> 
    <td width="10%" align="right"><b>Gender</b></td> 
    <td width="90%"><span id="total_marks"></span></td> 
    </tr> 
    <tr> 
    <td width="10%" align="right"><b>Designation</b></td> 
    <td width="90%"><span id="email"></span></td> 
    </tr> 
    <tr> 
    <td width="10%" align="right"><b>Age</b></td> 
    <td width="90%"><span id="ph"></span></td> 
    </tr> 
    </table> 
    </div> 

    </div> 
</body> 
</html> 

<script> 
$(document).ready(function(){ 
$('#search').click(function(){ 
    var enroll= $('#employee_list').val(); 
    if(enroll != '') 
    { 
    $.ajax({ 
    url:"fetch.php", 
    method:"POST", 
    data:{enroll:enroll}, 
    dataType:"JSON", 
    success:function(data) 
    { 
    if(data.length != 0){ 

    $('#employee_details').css("display", "block"); 
    $('#name').text(data.name); 
    $('#address').text(data.address); 
    $('#total_marks').text(data.total_marks); 
    $('#ph').text(data.ph); 
    $('#email').text(data.email); 
    } 
    else { alert("Please Select Employee"); } 
    } 

    }) 
    } 

    else 
    { 
    alert("Please Select Employee"); 
    $('#employee_details').css("display", "none"); 
    } 
}); 
}); 
</script> 

fetch.php

<?php 
//fetch.php 
if(isset($_POST["enroll"])) 
{ 
$connect = mysqli_connect("localhost", "root", "", "aviation"); 
$query = "SELECT * FROM student WHERE enroll = '".$_POST["enroll"]."'"; 
$result = mysqli_query($connect, $query); 
if(mysqli_num_rows($result)>0) 
{ 
while($row = mysqli_fetch_array($result)) 
{ 
    $data["name"] = $row["name"]; 
    $data["address"] = $row["address"]; 
    $data["total_marks"] = $row["total_marks"]; 
    $data["email"] = $row["email"]; 
    $data["ph"] = $row["ph"]; 

} 

echo json_encode($data); 
} 
} 
?> 

Antwort

1

Sie nur

error: function(){ 
    alert('No Such Data Found!'); 
} 

nach dem success:function(data)

so wäre Ihre Ajax-Aufruf wie könnte hinzufügen:

$.ajax({ 
url:"fetch.php", 
method:"POST", 
data:{enroll:enroll}, 
dataType:"JSON", 
success:function(data) 
{ 
if ($.trim(data)){ 
$('#employee_details').css("display", "block"); 
$('#name').text(data.name); 
$('#address').text(data.address); 
$('#total_marks').text(data.total_marks); 
$('#ph').text(data.ph); 
$('#email').text(data.email);} 
else{alert('No Such Data Found!')} 
}, 
error: function(){ 
    alert('error !'); 
} 

oder ein anderes in Ihrem PHP-Code hinzufügen, der einen false zurück, wenn das Ergebnis leer ist:

if(mysql_num_rows($result)>0) 
{ 
while($row = mysqli_fetch_array($result)) 
{ 
//code ...... 
} 

echo json_encode($data); 

}else { 
return false; 
} 

dann würde Ihr Ajax-Aufruf wie:

$.ajax({ 
url:"fetch.php", 
method:"POST", 
data:{enroll:enroll}, 
dataType:"JSON", 
success:function(data) 
{ 
if(data != false){ 
$('#employee_details').css("display", "block"); 
$('#name').text(data.name); 
$('#address').text(data.address); 
$('#total_marks').text(data.total_marks); 
$('#ph').text(data.ph); 
$('#email').text(data.email);}else{alert('No Such Data Found!');} 
} 
+0

Noch nicht anzeigen Nachricht – Doni

+0

@Doni versuchen, die zweite Option – M0ns1f

+0

Nein noch nicht :( – Doni

1

In Ihrem PHP-Code , verwenden Sie eine Schleife, um Datenbankzeilen abzurufen. Aber Ihr PHP-Code verhält sich so, als würden Sie nur eine Zeile mit Daten erhalten.

Ich denke für den Moment, dass Sie nur 1 Reihe von Daten erhalten, wenn Sie nicht anders angeben.

Sie überprüfen bereits, ob mysql 1 oder mehr Ergebnisse liefert. Also, alles, was wir brauchen, ist eine Variable, die Ihnen sagt, ob ein Ergebnis gefunden wurde.

Beispiel:

<?php 
$output = array(
    'result' => 0 
); 

if (isset($_POST["enroll"])) { 
    $connect = mysqli_connect("localhost", "root", "", "aviation"); 
    $query = "SELECT name,address,total_marks,email,ph FROM student WHERE enroll = '" . $_POST["enroll"] . "'"; 
    $result = mysqli_query($connect, $query); 
    if (mysql_num_rows($result) == 1) { 
     $output['row'] = mysqli_fetch_array($result); 
     $output['result'] = 1; 
    } 
} 

echo json_encode($output); 

Dann, wenn Ihr JavaScript-Code, Sie nur zu testen, ob die data.result auf 1 oder 0 gleich ist und entsprechend handeln. Beispiel:

<script> 
    $(document).ready(function() { 
     $('#search').click(function() { 
      var enroll = $('#employee_list').val(); 
      if (enroll != '') 
      { 
       $.ajax({ 
        url: "fetch.php", 
        method: "POST", 
        data: {enroll: enroll}, 
        dataType: "JSON", 
        success: function (data) 
        { 
         if(data.result == 1){ 
          $('#employee_details').css("display", "block"); 
          $('#name').text(data.row.name); 
          $('#address').text(data.row.address); 
          $('#total_marks').text(data.row.total_marks); 
          $('#ph').text(data.row.ph); 
          $('#email').text(data.row.email); 
         } 
         else{ 
          alert("No Such Data Found"); 
         } 
        } 
       }) 
      } else 
      { 
       alert("Please Select Employee"); 
       $('#employee_details').css("display", "none"); 
      } 
     }); 
    }); 
</script> 

Edit: vorsicht, sollten Sie sanieren auch die POST-Variablen, bevor es in Ihrem mysql query