尝试使用按钮不起作用发送值

时间:2014-03-23 15:24:11

标签: php mysql

基本上我有一个按钮页面,每个按钮都保存日期(从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;

这不会产生任何结果。

基本上我需要一个解决方案,每个按钮都可以包含一个唯一值,因此下一页可以使用它来从数据库中读取它。

由于

4 个答案:

答案 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]'\",您可以摆脱其他内容(valuename),因为他们不会对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>

请注意:

  1. 您只需要使用一个表单元素。您发布的代码实际上会为每个按钮打印整个表单。这不是必要的。

  2. PHP也是一种模板语言。您可以移入和移出它,也不需要使用echo来打印所有HTML。

  3. 另一种方法是将日期附加到网址,然后使用链接。

      <?php for($i = 0; $i < $res; $i ++){ ?>
    
        <p>
            <a href="view.php?WantedDate=<?php print $myArray[$i]; ?>">
               <?php print $myArray[$i]; ?>
            </a>
        </p>
    
      <?php } ?>