【问题标题】:Form that uses array, assign object to array使用数组的表单,将对象分配给数组
【发布时间】:2016-05-16 15:38:21
【问题描述】:

我需要创建一个表单,允许用户选择一个从 0 到 7 的数字并“显示全部”,然后脚本会将在该火车车厢中找到的对象输出给用户,或者如果选择全部显示然后它运行一个循环,显示所有 8 个对象以及列车号。但是我的代码并没有真正运行。 (如果没有任何意义,请忽略我的代码,但我似乎没有得到数组:(请指出错误,非常感谢)

<html>
<body>
<form name="train" method="GET" action="test.php">

<select>
<option value="0" name="object">0</option>
<option value="1" name="object">1</option>
<option value="2" name="object">2</option>
<option value="3" name="object">3</option>
<option value="4" name="object">4</option>
<option value="5" name="object">5</option>
<option value="6" name="object">6</option>
<option value="7" name="object">7</option>
<option value="8" name="object">8</option>
<option value="all" name="all">Show All</option>
</select>

<input type="submit" name="submit" id="submit" value="submit" size="10">
</form>

<?php

$train[0] ="pencil";
$train[1] = "macaron";
$train[2] = "notes";
$train[3] = "book";
$train[4] = "eraser";
$train[5] = "cake";
$train[6] = "laptop";
$train[7] = "mint";
$train[8] = "cup";

if ($_GET['submit']) { 
  $train = $_GET['object']; 
  echo "<p>I have $train!</p>";
}

for ($i = 0; $i < sizeof($train); $i++) {
  echo "<li>" . $train[$i] . "</li>";
}   

?>

</body>
</html>

【问题讨论】:

  • $train = $_GET['obejct']; - "obejct" 拼写错误。应该是“对象”
  • Form that uses array的可能重复

标签: php arrays forms


【解决方案1】:

代码有一些错误

  • 选择应该有名称属性
  • 需要根据所选选项获取对象并显示结果。

使用下面的代码

<form name="train" method="GET" >

<select name="object">
  <option value="0">0</option>
  ......
  <option value="all">Show All</option>
</select>

<input type="submit" name="submit" id="submit" value="submit" size="10">
</form>

PHP 代码

$train[0] ="pencil";
....
$train[8] = "cup";

if ($_GET['submit']) { 
  $object = $_GET['object'];
  if($object == 'all'){
    for ($i = 0; $i < sizeof($train); $i++) {
        echo "<li>" . $train[$i] . "</li>";
    }
  }else{
    echo "<p>I have $train[$object]!</p>";
  } 

}

【讨论】:

  • 感谢您的建议 :) 但这似乎仍然无法运行 :( 由于某种原因它没有正确回显。
  • @meowwwwww 您的其他问题可能会被关闭以链接到这个问题。如果您能准确地确定这会产生什么输出,以及它与您的预期有何不同,那将会有所帮助。如果您得到 no 输出,则可能是由于代码中的致命错误。始终在开发和测试代码时,在脚本的顶部 error_reporting(E_ALL); ini_set('display_errors', 1); -- 这将在尝试纠正逻辑错误之前显示要纠正的编码和语法错误。
猜你喜欢
  • 2010-11-22
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 2015-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多