2016-05-02 4 views
1

PHP-Variablen Werte zurückgeben I 2 Variablen zurückkehren will:wie zusammen mit HTML-Antwort ajax von PHP

1) Gesamtzahl der Datensätze aus der mysqli Abfrage von search_members.php

2) wahr oder falsch wenn alle Ergebnisse

hier gefunden wurden, ist mein Code:

<input type="button" value="Search" onclick="GetSearchResults(0)" 
     class="SrchBtn" /> 

<script> 
var pageNo = 1; 
var DoSearch; 
var SearchString = ""; 

function GetSearchResults() 
{ 
    DoSearch = false; 

    if (document.getElementById("SearchString").value > 0) { 
     SearchString = document.getElementById("SearchString").value; 
     DoSearch = true; 
     if (DoSearch === true) { 
      $.ajax({ 
       type: 'POST', 
       url: 'search_members.php', 
       data: { SearchString: SearchString, pageNo: pageNo}, 
       success: function(response) { 
        $('#SearchReultsBox').html(response); 
       } 
      }); 
     } 
    } 
} 
</script> 

die Variablen Werte möchte ich bekommen sind $ SearchFound und $ total_pages aus der PHP-Datei wie unten gezeigt, hier ist der Code für search_members.php

<?php 
include_once('dbConnect.php'); 

$SearchFound=false; 
$Items_PerPage=10; 
if (!empty($_POST['SearchString'])) 
{ 
    $SearchString= $_POST['SearchString'] ; 
    $SearchString = trim(htmlentities($SearchString)); 
    $SearchString= strip_tags($SearchString); 
    $SearchString= mysqli_real_escape_string($con,$SearchString); 
} 
$pageNo=$_POST['pageNo']; 


$sql="SELECT * from members where member_name=$SearchString"; 
$result = $con->query($sql); 
$num_rec = mysqli_num_rows($result); 
if ($num_rec>0) 
{ 
    $SearchFound=true; 
     $total_pages = ceil($num_rec/$Items_PerPage); 
     $start_from = ($pageNo-1) * $Items_PerPage;  
     $sql .= " LIMIT $start_from, $Items_PerPage"; 
     $result = $con->query($sql); 
     $total_page_records = mysqli_num_rows($result); 
     while($row = mysqli_fetch_array($result)) 
     { 
      //echo "<table>";.......display table with results 
     } 
} 
else 
{ 
    echo "<p>no resutls found</p>"; 
} 
?> 
+5

Meine psychischen Kräfte sind schwach am Montag. Kannst du bitte den Inhalt von 'search_members.php' posten? – Marcus

+0

Also, was passiert jetzt? Es ist nicht klar –

+0

Ich habe den Code für die PHP-Datei –

Antwort

0

Sie müssen möglicherweise JSON zurückgeben, wenn Sie eine Sammlung oder mehr als nur ein Einzelwert wie HTML-Text oder einfach wollen Zeichenfolge. Hier ... wie folgt:

<script> 
     var pageNo   = 1; 
     var SearchString = ""; 
     var DoSearch; 

     function GetSearchResults() { 
      DoSearch = false; 

      if(document.getElementById("SearchString").value>0) { 
       SearchString = document.getElementById("SearchString").value; 
       DoSearch=true; 
       if (DoSearch===true) { 
        $.ajax({ 
         type:  'POST', 
         dataType: 'JSON',  //EXPLICITLY SET THIS TO JSON 
         url:  'search_members.php', 
         data:  { SearchString: SearchString, pageNo: pageNo}, 

         success: function(response) { 
          // YOUR AJAX REQUEST RETURNS JSON DATA WITH ONLY 2 VALUE TYPES - INTEGER & BOOLEAN 
          // NOW IF YOU WANT TO DISPLAY YOUR SEARCH RESULT 
          // YOU MAY WANT TO BUILD THAT IN YOUR PHP FILE (PERHAPS WITH A KEY LIKE SO: html 
          // AFTERWARDS YOU MIGHT BE ABLE TO DO: 
          //$('#SearchResultsBox').html(response.html); 
         }, 

         error: function (jqXHR, textStatus, errorThrown) { 
          console.log('Error: '+jqXHR.responseText); 
         } 
        }); 
       } 
      } 
     } 
    </script> 

Weiter zur PHP-Seite der Gleichung; Vielleicht möchten Sie so etwas tun:

<?php 
    /** 
    * search_member.php 
    */ 
    include_once('dbConnect.php'); 

    $SearchFound = false; 
    $Items_PerPage = 10; 

    //DECLARE DEFAULT RESPONSE PAYLOAD 
    $response  = array(
     "message"  => "<p>no resutls found</p>", 
     "numRecords" => null, 
     "searchFound" => false, 
    ); 

    $searchString = isset($_POST['SearchString']) ? htmlspecialchars(trim($_POST['SearchString'])) : null; 
    $pageNo   = isset($_POST['pageNo'])  ? htmlspecialchars(trim($_POST['pageNo']))   : null; 

    if ($searchString) { 
     $SearchString = strip_tags($SearchString); 
     $SearchString = mysqli_real_escape_string($con,$SearchString); 
    } 


    $sql  = "SELECT * FROM members WHERE member_name='{$SearchString}'"; 
    $result  = $con->query($sql); 
    $num_rec = mysqli_num_rows($result); 

    if ($num_rec>0) { 
     $SearchFound  = true; 
     $total_pages  = ceil($num_rec/$Items_PerPage); 
     $start_from   = ($pageNo-1) * $Items_PerPage; 
     $sql    .= " LIMIT {$start_from}, {$Items_PerPage}"; 
     $result    = $con->query($sql); 
     $total_page_records = mysqli_num_rows($result); 

     //SINCE YOU WANT TO ONLY RETURN 2 VALUE: DO IT HERE INSTEAD: 
     $response   = array(
      "message"  => "The World is Good and Everyone is Smiling like you, now.... ;-)", 
      "numRecords" => $total_page_records, 
      "searchFound" => $SearchFound 
     ); 

     /* 
     while($row = mysqli_fetch_array($result)){ 
      //echo "<table>";.......display table with results 
     } 
     */ 
    }else{ 
     //REMEMBER YOU ARE RETURNING JSON DATA SO NO NEED TO ECHO A HTML DATA RATHER SEND IT BACK AS A PAYLOAD 
     //echo "<p>no resutls found</p>"; 
    } 

    //SEND BACK A JSON PAYLOAD BASED ON THE RESPONSE DATA 
    die(json_encode($response)); 

?> 
+0

Wenn Sie 'JSON' zurückgeben, müssen Sie mehr tun als' .html (Daten); 'in der Erfolgsrückruf ... – War10ck