繁体   English   中英

HTML表单不会发布或检索值

[英]HTML form doesn't post or retrieve values

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

?>

非常感谢。

那么我注意到你缺少一个右"的最后回音,而不是更改为:

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

3个问题 - 首先你的表单操作应该是<?php echo $_SERVER['PHP_SELF'] ?> ,第二,你的第二个echo语句中有一个语法错误,应该echo "$MONTH_START"; (你错过了收尾报价,虽然如果你只回显变量就不需要引号。)最后,当你发布变量时,你需要在你的提交按钮中添加name="submit"显示条件的正确提交密钥

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

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

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

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

其次,你需要一个额外的"在最后一行,让它echo "$MONTH_START";

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

你得到两个变量: $_POST['symbol']$_POST['month_start'] - 你应该在采取任何行动之前检查它们中是否有一个(或两个)。

希望能帮助到你! :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM