2017-04-23 74 views
-1

我對如何做AJAX請求有一個基本的想法,但我真正想要的是在獲取數據後立即發送響應,而不是等待所有mysql查詢結果完成。有沒有辦法做到這一點?你能提出一個想法嗎?立即發送響應PHP jquery AJAX

我真是越看越是例如:

當文檔準備好,然後在客戶端應在所有名單中的數據庫發送請求。 雖然服務器端的PHP獲取數據,但它會將行作爲json發送,然後客戶端繼續解析這些響應,直到服務器端無法再獲取行。

可能嗎?如果是這樣,你有想法嗎?

+0

你是在談論某種流? – FirstOne

+0

你的意思是說你想立即在另一個Ajax調用第一個Ajax調用響應? –

+0

@FirstOne呀:) –

回答

-1

我對此有一小段代碼。可能是你接受!

JQuery的:

<script> 

    $(document).ready(function() { 
     view(); 
    }); 

    function register() 
    { 
     var f = $('#fname').val(); 
     var l = $('#lname').val(); 

     $.ajax({ 
      url:'index.php/control/insert', 
      data :{fname : f, lname : l}, 
      type:'post', 
      success:function(msg){ 
       return view(); 
      } 
     }); 
    } 

    function view() 
    { 
     $.ajax({ 
      url:'index.php/control/show', 
      data :{}, 
      type:'post', 
      success:function(msg){ 
       $('#table').html(msg); 
      } 
     }); 
    } 
</script> 

HTML表單:

<form action="" method="post"> 
    <table align="center" border="11"> 
     <tr> 
      <td>First name</td> 
      <td><input type="text" name="fname" id="fname" /></td> 
     </tr> 
     <tr> 
      <td>Last Name</td> 
      <td><input type="text" name="lname" id="lname" /></td> 
     </tr> 
     <tr> 
      <td colspan="2"><input type="button" id="submit" name="submit" onclick="register()" value="Register"></td> 
     </tr> 
    </table> 
</form> 

我對MySQL的功能控制器:

public function insert() 
{ 
    $sql = "INSERT INTO MyGuests (firstname, lastname) VALUES ('".$_REQUEST['fname']."', '".$_REQUEST['lname']."')"; 

    if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    } 
} 
public function show() 
{ 
    $sql = "SELECT * FROM MyGuests"; 

    if ($data = $conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    } 

    echo "<br><table border='1' align='center'> 
      <tr> 
       <th>Firstname</th> 
       <th>Lastname</th> 
      </tr>"; 
      foreach($data as $s) 
      { 
       echo "<tr><td>".$s->fname."</td>"; 
       echo "<td>".$s->lname."</td></tr>"; 
      } 
    echo "</table>" ; 
} 

確保代碼沒有進行測試,這是對您的要求的樣品,旨在意識到即時呼叫功能。這裏我在將數據插入數據庫之後調用了view()函數。

+0

Ooooh。我想我現在就明白你的想法。謝謝 :) –