2010-04-09 4 views
1

Je veux savoir comment appeler récursivement la fonction Ajax. Mon code ajax est comme ça,Comment appeler la fonction Ajax récursivement

<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> 

et le code php est comme ce

<?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"; 
    } 
} 
?> 

première fois cette fonction est être appelée avec la valeur de la variable pas égal à 1 et Fonction Nom de l'écriture modifié comme 2. Maintenant, je veux appeler cette fonction Ajax avec la valeur de la variable Step égale à 2. Donc, cette 2ème fonction php est appelée.

+0

En plus: vous pouvez laisser le 'isset()' si vous avez déjà pour vérifier 'vide()'. – janmoesen

+0

@janmoesen Yah, je peux.thanx. – MAS1

Répondre

1

Vous pouvez créer une fonction qui rend l'appel Ajax et accepte l'étape comme argument:

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

Vous devez utiliser « json_encode() » fonction au niveau du serveur côté script PHP au lieu de simple " écho". "eval()" méthode dans le Javascript essaie d'exécuter le texte retourné.

Vous devriez écrire dans la fonction writeName() ce code:

echo json_encode(2); 
+0

@Sergey Kuznetsov: Thanx. Je viens de connaître un nouveau concept. – MAS1

Questions connexes