3

这是一个标准的 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

4 回答 4

2

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

echo "$MONTH_START;"(假设不是错字)

于 2013-04-09T22:03:29.637 回答
2

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

于 2013-04-09T22:08:41.813 回答
1

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

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

   $SYMBOL = $_POST['symbol'];
   echo "$SYMBOL";
   $MONTH_START = $_POST['month_start'] - 1;
   echo "$MONTH_START";
}
?>
于 2013-04-09T22:14:22.437 回答
1

为了获得action属性中的任何值,您必须在变量中添加回显,如下所示<?php echo $_SERVER['PHP_SELF']; ?>:但是,这无济于事,因为您可以这样做<form method="post" action="">,它仍然会 POST 到同一页面。

其次,您需要在最后一行添加额外"内容,使其echo "$MONTH_START";.

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

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

希望能帮助到你!:)

于 2013-04-09T22:40:51.457 回答