【问题标题】:php read file and create drop down menuphp读取文件并创建下拉菜单
【发布时间】:2013-05-31 23:35:03
【问题描述】:

我有以下 php 代码创建下拉菜单读取包含名称的文本文件

文件.txt

JAMES
MARK
TONY

下拉.php

<?php
$path = "files.txt";
$file = fopen($path, 'r');
$data = fread($file, filesize($path));
fclose($file);

$lines =  explode(PHP_EOL,$data);
echo '<select name="file">';
foreach($lines as $line) {
  echo '<option value="'. urlencode($line).'">'.$line.'</option>';
}
echo '</select>';
?>

这里是 POST 部分的代码,它是一个循环

foreach ($_POST["bname"] AS $id => $value)
{
...
...   
USERNAME: "'.$_POST["file"][$id].'"

一切正常,但是当我将数据提交到其他表单时,我只收到用户的首字母,例如如果我选择 JAMES 并提交数据,我只会在 .$_POST 中收到 J 字母。我想要全名JAMES,我的代码有什么问题?

【问题讨论】:

  • 你能告诉我们你使用$POST的脚本吗?
  • 可能发生的事情是你说我只想要字符串 $_POST["file"][0] 的第一个字符或类似的东西,但我们需要看到你回显它的部分。
  • 是的,这对我来说很好。它一定是您发布的内容。
  • @sgroves - 我已经编辑了我的问题并添加了POST 部分

标签: php html drop-down-menu


【解决方案1】:

你select的name属性不对,一定是:

echo '<select name="file[]">';

echo '<select name="file[someNumber]">';

【讨论】:

    【解决方案2】:

    您不需要 Id,因为那是说“我想要这个值,第二部分说哪个字符”(至少是您使用它的方式)。试试这个:

    "USERNAME " . $_POST["file"]
    

    字符串在 PHP 中被视为数组。

    如果你有字符串kitty

    $string = "Kitty";
    echo $string[0]; // prints "K"
    echo $string[4]; // prints "y"
    

    【讨论】:

      【解决方案3】:

      尝试使用file()读取txt文件,将行直接添加到数组中,然后使用for()遍历数组。

      <?php
      $path = "files.txt";
      $lines = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
      $nrl = count($lines);
      echo '<select name="file[]">';
      for($i=0; $i<$nrl; $i++) {
        echo '<option value="'. urlencode($lines[$i]).'">'.$lines[$i].'</option>';
      }
      echo '</select>';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-09
        • 2012-07-20
        • 1970-01-01
        相关资源
        最近更新 更多