尝试在请求中获取表单输出

时间:2018-05-28 04:27:58

标签: php html loops

我正在尝试从提交请求中获取表单中的值。 Bellow只是PHP代码,因为我知道HTML表单是正确的,因为当我没有将isset()函数放入PHP时,它完美地工作。

<?php

    if (isset($_POST["submit"]))
    {
        $fname = $_POST['firstname'];
        $emailstr = $_POST['email'];
        $postaddrstr =$_POST['postaddr'];
        $favsportstr =$_POST['favsport'];
        $emailliststr =$_POST['emaillist'];
    }
?>

我认为错误位于下面的部分,因为我在$ fore获得了一个未定义的变量消息,并且在foreach循环中获得了一个数组到字符串的转换。

<section id="output">
    <?php
        if (isset($_POST["submit"]))
        {
            echo "<h2>The following information was received from the form:</h2>";
            echo "<p><strong>First Name:</strong>   $fname </p>";

            echo "<p><strong>Email = </strong>   $emailstr </p>";
            echo "<p><strong>Post Address = </strong>   $postaddrstr </p>";
            echo "<p><strong>Your Favourit Sport:</strong> 
            foreach($favsportstr as $val) {
                $val 
            }";
            echo "<p><strong>Email list = </strong>   $emailliststr </p>";
        }
    ?>
</section>

2 个答案:

答案 0 :(得分:0)

您无法在echo内更改后续行中的循环:

 echo "<p><strong>Your Favourit Sport:</strong> 
 foreach($favsportstr as $val) {
       $val 
 }";

 echo "<p><strong>Your Favourit Sport:</strong> ";
 foreach($favsportstr as $val) {
      echo $val;
 }

答案 1 :(得分:0)

这是您的错误来源:

echo "<p><strong>Your Favourit Sport:</strong> 
            foreach($favsportstr as $val) {
                $val 
            }";

只需将其改为此即可。

echo "<p><strong>Your Favourit Sport:</strong>"; 
            foreach($favsportstr as $val) {
                echo $val; 
            }

原因是你不能在echo语句中放置一个循环。将回声置于循环内而不是循环内回声。 'echo'语句仅用于打印输出。它不会支持任何处理它只会打印其中的所有内容。它只能在双引号之间输出变量值。像这样:echo "$var";