簡體   English   中英

如何遞歸調用Ajax函數

[英]How to call Ajax function recursively

我想知道如何遞歸調用Ajax函數。 我的ajax代碼是這樣的,

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  var step='1';
  $.ajax
  (

   {   
    url: 'test1.php',
    data: {step: step},        
    success: function(output) 
    {                                         
       step=eval(output);
       alert(step);
    }
   }
  );

</script>
</head>   
</html>

和PHP代碼是這樣的

<?php
 function writeName()
 {
  echo "step=2";
 }
 function ReadName()
 {
  echo "In Read Name Function";
 }
 if(isset($_REQUEST['step']) && !empty($_REQUEST['step']))
 {
  $step = $_REQUEST['step'];
  switch($step)
  {
   case '1' : 
    writeName();
    break;
   case '2' : 
    ReadName();
    break;
   default  : 
    echo "Empty String";   
  }
 }
?>

第一次調用此函數時,step變量的值等於1,而Function Write名稱將其修改為2。現在,我想調用Step變量值等於2的Ajax函數。這樣就調用了第二個php函數。

您可以創建一個函數來進行Ajax調用並接受該步驟作為參數:

function getStep(step) {
  $.ajax
    (
     {   
      url: 'test1.php',
      data: {step: step},        
      success: function(output) 
      {                                         
         step=parseInt(output);
         alert(step);
         if (step < 2) {
            getStep(step);
         }
      }
     }
    );
}

您需要在服務器端PHP腳本中使用“ json_encode()”函數,而不是簡單的“ echo”。 Javascript中的“ eval()”方法嘗試運行返回的文本。

您應該在writeName()函數中編寫以下代碼:

echo json_encode(2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM