这是一个标准的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;
?>
非常感谢。
答案 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']
- 在采取任何行动之前,你应该确定是否设置了其中一个(或两个)。
希望它有所帮助! :)