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
}
?>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
<?php
}
?>
</form>
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
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); –