【问题标题】:PHP send variable value external webpagePHP发送变量值外部网页
【发布时间】:2022-02-15 23:15:24
【问题描述】:

我目前正在尝试从表单发送两个变量值,$incorrect$correct

我曾尝试使用$_POST[] 来创建此功能,但它不起作用!

在创建这样的功能时有人可以帮助我吗?

page1.php

<form action="testresult.php" method="POST">
    <label for="qn1">Question 1: <?php echo $array_question[$question_num_array[0]] ?></label><br>
    <input type="text" id="question1_answer" name="question1_answer" required><br><br>
    
    <label for="qn2">Question 2: <?php echo $array_question[$question_num_array[1]] ?></label><br>
    <input type="text" id="question2_answer" name="question2_answer" required><br><br>

    <label for="qn3">Question 3: <?php echo $array_question[$question_num_array[2]] ?></label><br>
    <input type="text" id="question3_answer" name="question3_answer" required><br><br>

    <input type="hidden" name="correct" id="correct" value="<?php $correct ?>" />
    <input type="hidden" name="incorrect" id="incorrect" value="<?php $incorrect ?>" />
    
    <input type="submit" name="submitAnswers" value="Submit">
</form>

<?php
        if(isset($_POST["submitAnswers"])){
            $correct = 0;
            $incorrect = 0;
            $qn1_ans = $_POST['question1_answer'];
            $qn2_ans = $_POST['question2_answer'];
            $qn3_ans = $_POST['question3_answer'];

            if ($qn1_ans == $array_answer[$question_num_array[0]]){ $correct ++; }
            else { $incorrect ++; }

            if ($qn2_ans == $array_answer[$question_num_array[1]]){ $correct ++; }
            else { $incorrect ++; }

            if ($qn3_ans == $array_answer[$question_num_array[2]]){ $correct ++; }
            else { $incorrect ++; }

        }
    ?>

在接收端 page2.php

<html>
    <head>
    <title>Results</title>
    </head>
    <body>
        <?php
        $correct = $_POST['correct'];
        $incorrect = $_POST['incorrect'];

        echo $correct."test ".$incorrect;
        ?>
    </body>
</html>

【问题讨论】:

  • 什么究竟不能使用该代码?你有什么努力让它发挥作用?
  • 我的变量没有显示在其他页面上。所以我不确定哪里出了问题。
  • 请尝试使用javascript在此处设置隐藏字段值。
  • 您尝试过什么解决问题的方法?为什么不在提交之前(通过标记)或提交之后(通过在浏览器的网络控制台中检查请求,或通过转储$_POST)检查表单包含的内容
  • 另外,您确定要在之前在任何地方发布该字段的值吗?

标签: php html


【解决方案1】:

你的第一页应该只显示问题,它会是这样的。

<form action="testresult.php" method="POST">
    <label for="qn1">Question 1: <?php echo $array_question[$question_num_array[0]] ?></label><br>
    <input type="text" id="question1_answer" name="question1_answer" required><br><br>
    
    <label for="qn2">Question 2: <?php echo $array_question[$question_num_array[1]] ?></label><br>
    <input type="text" id="question2_answer" name="question2_answer" required><br><br>

    <label for="qn3">Question 3: <?php echo $array_question[$question_num_array[2]] ?></label><br>
    <input type="text" id="question3_answer" name="question3_answer" required><br><br>

    <!--input type="hidden" name="correct" id="correct" value="<?php $correct ?>" />
    <input type="hidden" name="incorrect" id="incorrect" value="<?php $incorrect ?>" /-->
    
    <input type="submit" name="submitAnswers" value="Submit">
</form>

当您点击提交按钮时,答案将发布到 testresult.php。

在这个文件中,首先检查答案,然后显示结果。

该页面不包含问题,因此您还需要包含 php 文件。

<html>
    <head>
    <title>Results</title>
    </head>
    <body>
        <?php
        if(isset($_POST["submitAnswers"])){
            include 'question.php'; #include the question array.

            $correct = 0;
            $incorrect = 0;
            $qn1_ans = $_POST['question1_answer'];
            $qn2_ans = $_POST['question2_answer'];
            $qn3_ans = $_POST['question3_answer'];

            if ($qn1_ans == $array_answer[$question_num_array[0]]){ $correct ++; }
            else { $incorrect ++; }

            if ($qn2_ans == $array_answer[$question_num_array[1]]){ $correct ++; }
            else { $incorrect ++; }

            if ($qn3_ans == $array_answer[$question_num_array[2]]){ $correct ++; }
            else { $incorrect ++; }

            echo $correct."test ".$incorrect;
        }
        ?>
    </body>
</html>

【讨论】:

  • 啊,是的,你随机包含了一个不存在的文件!
【解决方案2】:

这些变量是从哪里来的?

在您的代码中,您调用了两个变量 $array_answer$question_num_array

这两个变量都没有设置!请解决此问题。

【讨论】:

    【解决方案3】:

    您为 testresult.php 设置的表单操作。因此,该表单肯定会将其所有数据带到该页面。但是您正试图在与if(isset($_POST["submitAnswers"])) 相同的页面上获取数据,表单在哪里; testresult.php 页面中实际应该存在的内容。所以应该是这样的:

    index.php 之类的.php

    <form action="testresult.php" method="POST">
        <label for="qn1">Question 1: <?php echo $array_question[$question_num_array[0]] ?></label><br>
        <input type="text" id="question1_answer" name="question1_answer" required><br><br>
        
        <label for="qn2">Question 2: <?php echo $array_question[$question_num_array[1]] ?></label><br>
        <input type="text" id="question2_answer" name="question2_answer" required><br><br>
    
        <label for="qn3">Question 3: <?php echo $array_question[$question_num_array[2]] ?></label><br>
        <input type="text" id="question3_answer" name="question3_answer" required><br><br>
    
        <input type="hidden" name="correct" id="correct" value="<?php $correct ?>" />
        <input type="hidden" name="incorrect" id="incorrect" value="<?php $incorrect ?>" />
        
        <input type="submit" name="submitAnswers" value="Submit">
    </form>
    

    testresult.php

    <?php
    
    
    
    // questions array that is called in the form's page should be 
       called here too to get the questions and comparisons.
    
        if (isset($_POST['submitAnswers'])) {
        $correct = 0;
        $incorrect = 0;
        $qn1_ans = $_POST['question1_answer'];
        $qn2_ans = $_POST['question2_answer'];
        $qn3_ans = $_POST['question3_answer'];
    
        if ($qn1_ans == $array_answer[$question_num_array[0]]) {
            $correct++;
        } else {
            $incorrect++;
        }
    
        if ($qn2_ans == $array_answer[$question_num_array[1]]) {
            $correct++;
        } else {
            $incorrect++;
        }
    
        if ($qn3_ans == $array_answer[$question_num_array[2]]) {
            $correct++;
        } else {
            $incorrect++;
        }
    }
    ?>
    <html>
    
    <head>
        <title>Results</title>
    </head>
    
    <body>
        <?php
        $correct = $_POST['correct'];
        $incorrect = $_POST['incorrect'];
        
        echo $correct . 'test ' . $incorrect;
        ?>
    </body>
    
    </html>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      相关资源
      最近更新 更多