2012-09-24 3 views
0

Je dois montrer la redirection de la page avec incrément de un en utilisant la fonction javascript. Mais quand j'essaye ceci j'ai eu l'erreur NaN. Quelqu'un peut-il m'aider s'il vous plaît à résoudre le problème.J'ai joint ma source ci-dessous. comme ce quiz.php? qusId = NaN.Passage de paramètre par javascript avec php

<script type="text/javascript"> 
     function handler(var1,quizId) { 
      alert(var1); 
      var id = parseInt(quizId); 
      window.location = "quiz.php?qusId="+parseInt(quid(id)); 
     } 
     function quid(quzId){ 
      if(quzId == 1){ 
       return 1; 
      }else{ 
       return quzId++; 
      } 
     } 
    </script> 
</head> 
<body> 
    <?php 
     $qusId=$_GET['qusId']; 
     ?> 
     <form action="test.php" method="POST"> 
      <?php 
       $result = select("SELECT * FROM questions WHERE question_id='$qusId'"); 
       //$row = mysql_fetch_array($result); 
       $i=$_GET['qusId']; 
       while($row = mysql_fetch_array($result)) 
       { 
        ?> 
         <table width="581" height="299" border="1"> 
          <tr> 
           <td>Union Assurance Questionnaire</td> 
          </tr> 
          <tr> 
           <td> 
            <?php 
             echo $i.'.' .$row['questions']; 
             $i++; 
            ?> 
           </td> 
          </tr> 
          <tr> 
           <td> 
            <?php 
             $qId=$row['question_id']; 
             $result1=select("SELECT * FROM answers WHERE questionId='$qId' ORDER BY RAND()"); 
             while($row1=mysql_fetch_array($result1)){ 
              ?> 
               <input type="radio" name="answers" value="<?php echo $row1['answers'];?>" onclick="handler('<?php echo $row1["feedback"]; ?>,<?php echo $qusId;?>')" /><?php echo $row1['answers']; ?><br/> 
              <?php 
             } 
            ?> 
            &nbsp; 
           </td> 
          </tr> 
          <tr> 
           <td>&nbsp;</td> 
          </tr> 
         </table> 
        <?php 
       } 
      ?> 
     </form> 
+0

Ne faites pas confiance à la saisie de l'utilisateur! Vous supposez que $ _GET ['qusId'] est un nombre mais ce n'est pas nécessairement vrai et cela vous donne des trous de sécurité. Utilisez '' '$ qusId = (int) $ _ GET ['qusId']' '' et prenez connaissance des vulnérabilités d'injection SQL (par exemple http://www.veracode.com/security/sql-injection) – Deebster

+0

N'utilisez pas parseInt. Donnez juste comme une ficelle. C'est assez pour PHP comme étant passé dans l'URL, donc le type n'est pas considéré. window.location = "quiz.php? qusId =" + quid (id); –

Répondre

2

Dans votre gestionnaire de clic, vous avez

handler('<?php echo $row1["feedback"]; ?>,<?php echo $qusId;?>') 

Vous avez mis les guillemets simples au mauvais endroit - c'est d'être passé dans votre fonction « gestionnaire » comme un seul paramètre. Essayez plutôt:

handler('<?php echo $row1["feedback"]; ?>',<?php echo $qusId;?>) 
Questions connexes