基本上我有一个按钮页面,每个按钮都保存日期(从MySQL DB中检索)
所以它看起来像:
23 March 2014
22 March 2014
等等。
我想用该按钮传递一个值,所以当用户点击按钮时(使用onclick(这个项目仅供我自己使用)),它会将它们带到显示该工作日相关数据的页面。
我试图使用隐藏字段,但这似乎不起作用。我尝试过使用按钮元素本身的值,但也无济于事。我尝试的任何东西似乎都没有用。我的代码如下:
for($i = 0; $i < $res; $i ++)
{
echo "<form method=\"get\" action=\"view.php\">";
echo "<div class=\"button date\" value=\"$myArray[$i]\" onclick=\"window.location='view.php'\" name=\"button\">";
echo "<p> $myArray[$i] </p>";
echo "<input type=\"hidden\" value=\"$myArray[$i]\" name=\"WantedDate\">";
echo "</form>";
echo "</div>";
}
($ myArray [$ i]持有日期)
然后在页面&#34; view.php&#34; (他们点击按钮后也发送了它们)我有:
$olddate = $_GET['WantedDate'];
echo $olddate;
这不会产生任何结果。
基本上我需要一个解决方案,每个按钮都可以包含一个唯一值,因此下一页可以使用它来从数据库中读取它。
由于
答案 0 :(得分:1)
你需要这样做
echo "<div class='button date' value='".$myArray[$i]."' onclick=window.location='view.php?date='".$myArray[$i]."' name='button'>";
或者您可以使用location.href='view.php?date='".$myArray[$i]."'
然后在
view.php
$date = $_GET['date'];
echo $date;
答案 1 :(得分:0)
摆脱onclick=\"window.location='view.php'\"
。您告诉浏览器,当前有人点击该按钮时,它应该重定向到view.php
,它不会提交表单。
将其更改为type=\"submit\"
,告诉浏览器提交表单。
更新
抱歉,你说'我基本上有一个按钮页'所以我认为这将是一个按钮。我看到你正在尝试使用div创建一个按钮。哪个不起作用,因为div
从未被设计为作为表单元素工作。
将onclick=\"window.location='view.php'\"
更改为onclick=\"window.location='view.php?WantedDate=$myArray[$i]'\"
,您可以摆脱其他内容(value
和name
),因为他们不会对div做任何事情。此外,您可能会丢失隐藏的输入元素。
你的表单还有其他问题,你在关闭div之前关闭表单,这可能看起来像是一个合乎逻辑的事情(这就是你的开始,对吧?)但是HTML并不是这样的。它应该是
echo "<form [...]>";
echo "<div [..]>";
[...]
echo "</div>";
echo "</form>";
答案 2 :(得分:0)
您正在使用div
作为按钮!这不会导致表格汇总。改变它:
echo "<form method=\"get\" action=\"view.php\">";
echo "<input type=\"hidden\" value=\"$myArray[$i]\" name=\"WantedDate\">";
echo "<input type=\"submit\" value=\"$myArray[$i]\" />";
echo "</form>";
答案 3 :(得分:0)
有几种方法可以做到这一点。您可以像其他人所说的那样提交表格。为此,您需要稍微更改一下代码并使用<input type="submit">
。
<form method="get" action="view.php">
<?php for($i = 0; $i < $res; $i ++){ ?>
<p><input type="submit" name="WantedDate" value="<?php print $myArray[$i]; ?>"></p>
<?php } ?>
</form>
请注意:
您只需要使用一个表单元素。您发布的代码实际上会为每个按钮打印整个表单。这不是必要的。
PHP也是一种模板语言。您可以移入和移出它,也不需要使用echo来打印所有HTML。
另一种方法是将日期附加到网址,然后使用链接。
<?php for($i = 0; $i < $res; $i ++){ ?>
<p>
<a href="view.php?WantedDate=<?php print $myArray[$i]; ?>">
<?php print $myArray[$i]; ?>
</a>
</p>
<?php } ?>