0

老实说,在过去的两天里,我一直在 Stack Overflow 上寻找我的问题的答案。请不要降级我的问题...

我的问题是:我有一个 txt 文件,其中逐行包含城市名称:

21-城市名称.txt:

Paris
London
Amsterdam
Brussel
Berlin

我有一个 html 文件(我不确定它是否应该是一个 php 文件而不是 btw),在其中,我想创建一个 html 表单,并且在该表单中我希望用户输入他的名字,然后选择下拉选择列表中的城市。

我想逐行导入文本文件(从上面)作为选择列表选项。当然,保存用户名和城市选择并将它们打印在不同的 php 文件中(像这样 - “选择:(名称),(城市)。”)。

现在,如果用户没有选择城市,那么该 php 文件将打印“已选择:(名称),您没有选择任何城市。”

21-scriptUseForm.html:

<html>
<head></head>

<body>

    <!--Form for choice name and city:-->
    <form method='POST' action='21-script.php'>
        Enter your name:
        <input type='text' name='userName'/>
        <br><br>
        Enter your city:

        <select name='city'>
            <?
                define("fileName", "21-citiesNames.txt");
                global $cities;
                global $options='';
                $cityLines=file_get_contents(fileName);
                $cities=explode("\n",$cityLines);

                foreach($cities as $city){
                        $options.='<option value="'.$city.'">'.$city.'</option>';
                }
                echo $options;
            ?>
            <option value='city'> <?echo $options?></option>
        </select>

        <br><br>
        <input type=submit value="Click here">
    </form>

</body> 
</html>

现在接收并打印用户输入的 php 文件:

21-脚本.php:

<?php
session_start();

$_SESSION['userName'] = $_POST['userName'];

if(!isset($_POST['city']))
    $cityChosenOrNot= "You didn't choose any city";
else
{
    $_SESSION['cityChosen'] = $_POST['city'];
    $cityChosenOrNot=$_POST['city'];
}

$name=$_POST['userName'];

echo "Selected: ".$name.", ".$cityChosenOrNot.".";

?>

还有一件事......我想打开一个新的txt文件,我想在其中保存所有用户过去的输入,姓名和城市,一个接一个,每次用户输入新输入时都会动态变化。

我目前的问题是我运行 localhost/21-scriptUseForm.html 并且页面是这样的:

输入您的姓名:[输入姓名的地方]

输入您的城市:[选择没有任何选项。]

点击这里(提交按钮)

就是这样了。我到处寻找答案,例如:

将文本文件列表加载到 <option> 标记中

php读取文件并创建下拉菜单

从 .txt 创建选择下拉列表?

还有更多...请帮助,非常感谢。

4

1 回答 1

0

问题可能是您在标准 HTML 文件中使用 PHP - 将 21-scriptUseForm.html 更改为 21-scriptUseForm.php

虽然可以将 .html 文件配置为由 PHP 解析,但这通常不是默认行为。

于 2017-12-19T11:26:45.280 回答