3

私は3つのphpスクリプトを持っています。main.php question.php と values.php

これがコードです

main.php

<html>
    <head>
        <title></title>
    </head>

    <body>
        <h1>Be Prepare for the battle</h1>
        <?php
            $strTitle = "Begin";
            $strLink = "<a href = 'question.php?ques_id=1'>" . $strTitle ."</a>";     
            echo $strLink;
        ?>
    </body>
</html>

質問.php

<?php
require_once('../connect.php');
$quesSQL = mysql_query("SELECT * FROM  `questions` WHERE  `ques_id`=". $_GET["ques_id"]);

if(!mysql_num_rows($quesSQL) >= 1)
{
    die('Complete.');
}

$next = $_GET["ques_id"];

while($row = mysql_fetch_array($quesSQL)) {
    $id = $row['ques_id'];
    $strTitle = $row['ques_title'];
    echo "<li>" . $strTitle . "</li><br/>";         
}   

$optSQL = mysql_query("SELECT `options`,`values` FROM questions_options WHERE " . $id . "= ques_id");
echo "<form action=\"values.php\" method=\"POST\">";

while($row = mysql_fetch_array($optSQL) ) {
    $strOptions = $row['options'];  
    $strValues = $row['values'];                            
    echo "<input type =\"radio\" name =\"valueIn\" value=" . $strValues . " />" . $strOptions . "<br/>";
}   
echo "</form>";
$strTitle = "<input type =\"submit\" value=\"Next\">";
$next = $next + 1;
$strLink = "<a href = 'values.php?ques_id=" . $next . "'>" . $strTitle ."</a>";
echo $strLink;

mysql_close();                  
?>

値.php

<?php
require_once('../connect.php'); 
$input = $_POST['valueIn'];
$ansSQL = mysql_query("SELECT `answer` FROM questions WHERE 1-".$_GET["ques_id"]."= ques_id");          

$marks = 0;         
if($input == $ansSQL)
{
    $marks = $marks+1;
}
else
{
    $marks = $marks+0;
}               
echo $marks;                            
?>

今問題は、2 番目のスクリプト (questions.php) から 3 番目のスクリプト (values.php) に 1 つの値を渡す必要があることです。そして、ラジオボタンの名前の値「valueIn」の <form> セクションからのものです。しかし、私はそれを行うことはできません。2 番目のスクリプトの最後で $strLink 変数を使用して別の値 ques_id を送信しているためです。では、どうすればそれを行うことができますか?

4

4 に答える 4

1

おそらくフォームにあるべきものを処理するためにリンクを使用している理由がわかりません。anushaが述べているように、ques_idには非表示の入力フィールドを使用する必要があります。

質問.php

<?php
    require_once('../connect.php');
    $quesSQL = mysql_query("SELECT * FROM  `questions` WHERE  `ques_id`=". $_GET["ques_id"]);

    if(!mysql_num_rows($quesSQL) >= 1)
    {
    die('Complete.');
}

$next = $_GET["ques_id"];

while($row = mysql_fetch_array($quesSQL)) {
    $id = $row['ques_id'];
    $strTitle = $row['ques_title'];
    echo "<li>" . $strTitle . "</li><br/>";         
}   

$optSQL = mysql_query("SELECT `options`,`values` FROM questions_options WHERE " . $id . "= ques_id");
echo "<form action=\"values.php\" method=\"POST\">";

while($row = mysql_fetch_array($optSQL) ) {
    $strOptions = $row['options'];  
    $strValues = $row['values'];                            
    echo "<input type =\"radio\" name =\"valueIn\" value=" . $strValues . " />" . $strOptions . "<br/>";
}

$next = $next + 1;
$strLink = '<input type="hidden" name="ques_id" value="'.$next.'">';
echo $strLink;

    $strTitle = "<input type =\"submit\" value=\"Next\">";
    echo $strTitle;   
echo "</form>";

mysql_close();                  
?>

両方の変数は、次のような次のステップで$_POSTを介して利用可能になります

$input = $_POST['valueIn'];
$ques_id = $_POST['ques_id'];
于 2012-12-19T05:55:44.797 に答える
1

Mike's answer のように非表示の入力を使用することも、次のように GET パラメータを使用することもできます。

質問.php

<?php

// .........
// .........
// .........
// .........
// add / change your code for this part
$next = (int) $next;
$optSQL = mysql_query("SELECT `options`,`values` FROM questions_options WHERE ques_id = " . $next);
echo '<form action="values.php?ques_id=' . ($next+1) . '" method="POST">';
while($row = mysql_fetch_array($optSQL) ) {
    $strOptions = $row['options'];
    $strValues = $row['values'];
    echo '<input type="radio" name ="valueIn" value="' . $strValues . '" />' . $strOptions . '<br/>';
}
echo '<input type="submit" value="Next">';
echo "</form>";
mysql_close();

// end change
?>

値.php

<?php
// add / change your code for this part
$_GET["ques_id"] = (int) $_GET["ques_id"];
$ansSQL = mysql_query("SELECT `answer` FROM questions WHERE ques_id = " . ($_GET["ques_id"]-1));
// end change
// .........
// .........
// .........
// .........
于 2012-12-19T06:07:36.213 に答える
0

「a」タグを使用して複数のパラメータを追加できます。お気に入り

 "<a href = 'values.php?ques_id=".$next." & ques_id1=1'>" . $strTitle ."</a>"
于 2012-12-19T05:09:05.370 に答える
-1

変数に非表示の入力フィールドを使用して$question_id、フォームを送信することもできます

于 2012-12-19T05:17:23.153 に答える