HTML表单不会发布或检索值

时间:2013-04-09 22:00:54

标签: php html forms

这是一个标准的HTML / PHP表单。我的代码看起来很好,但由于某种原因,echo语句(标准调试措施)不起作用。有什么想法吗?

<html>
<head>
<title>Search</title>
</head>
<body>

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST">
Symbol: <input type="text" name="symbol" />
<br />
Start Date:
<select name="month_start">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>

<br />

...
<input type="submit" value="Submit">
</form>

</body>
</html>

<?php
if(isset($_POST['submit'])) {

    $SYMBOL = $_POST['symbol'];
    echo "$SYMBOL";
    $MONTH_START = $_POST['month_start'] - 1;
    echo "$MONTH_START;

?>

非常感谢。

4 个答案:

答案 0 :(得分:2)

我注意到你错过了最后一个回音的结束",而是改为:

echo "$MONTH_START;"(假设不是拼写错误)

答案 1 :(得分:2)

3个问题 - 首先你的表单操作应该是<?php echo $_SERVER['PHP_SELF'] ?>,第二,你的第二个echo语句中有语法错误,应该是echo "$MONTH_START";(你错过了结束语,尽管你不喜欢如果你只回显变量,则需要引号。)最后,当你的post变量包含显示条件的正确提交键时,你需要在提交按钮中添加name="submit"

答案 2 :(得分:1)

你没有设置$_POST['submit'],所以它永远不会回应任何东西 测试是否设置了一个字段(您正在使用的字段):

<?php
 if(isset($_POST['symbol'])) {

   $SYMBOL = $_POST['symbol'];
   echo "$SYMBOL";
   $MONTH_START = $_POST['month_start'] - 1;
   echo "$MONTH_START";
}
?>

答案 3 :(得分:1)

为了获得action属性中的任何值,您必须从变量中输入回声,如下所示:<?php echo $_SERVER['PHP_SELF']; ?>。 但是,这没有用,因为您可以执行此操作<form method="post" action="">,它仍然会POST到同一页面。

其次,您需要在最后一行额外",使其成为echo "$MONTH_START";

此外,您要捕获的变量将永远不会被设置,因为它不是您表单的一部分。尝试使用print_r($_POST);查看。

你得到两个变量:$_POST['symbol']$_POST['month_start'] - 在采取任何行动之前,你应该确定是否设置了其中一个(或两个)。

希望它有所帮助! :)