【问题标题】:PHP - database query basedPHP - 基于数据库查询
【发布时间】:2014-11-29 08:03:28
【问题描述】:

我在 PHP 中建立了一个表格来显示人员列表和与他们相关的数据。我希望用户能够选择其中一个用户来发送电子邮件请求。所以我在每一行的末尾为每个用户放置了一个按钮。

我不确定如何编写 PHP 脚本来识别按下了哪个按钮。我尝试将按钮的名称指定为该行的用户的电子邮件地址,但我不知道如何在相应的脚本中读取该值...

初始页面代码:

if ($query_run = mysql_query($query))
{

echo "<fieldset>";

echo "<table>";
while ($row = mysql_fetch_assoc($sqldata))
{

    echo "<tr><th>Name</th>";
    echo "<td>";
    echo $row['FirstName']." ".$row['LastName'];
    echo "<td>";
    echo $row['Country'];
    echo "<td>";
    echo $row['Profile'];
    echo "<td>";
    echo $row['Email'];
    $Email = $row['Email'];
    echo "<td>";
    echo '<input type = "submit" name="$Email" value="connect">';

}
echo "</table>";
echo "</fieldset>";

谢谢!

【问题讨论】:

    标签: php


    【解决方案1】:

    如果您打算在 HTML5 中执行此操作,您可以更改提交按钮,使其重定向到一个页面,您可以在该页面上通过$_GET[]; 获取电子邮件

    echo "<input type=\"submit\" formaction=\"request.php?email=".$Email."\" value="Submit">\";
    

    然后在你的 request.php 中你可以使用:

    $email = $_GET['email'];
    

    【讨论】:

    • 感谢您的帮助。这可能是我所设想的最接近的尝试。
    【解决方案2】:

    我认为,您必须将 name 属性从“$Email”更改为,我不知道,也许是“user_email”,并将 $email 变量分配给 value 属性。因此,在必须处理此表单的脚本中,您只需要检索 $_POST['user_email'] 的值。

    另外我认为在双引号中使用 $Email 更好:

    echo "<input name='$Email'" ...>;
    

    因为你会得到字符串 '$Email' 而不是预期的电子邮件地址。

    或者您可以为每个表格行创建一个表单。

    【讨论】:

      【解决方案3】:

      有很多方法可以解决这个问题,但我个人会选择为此目的使用 HTML 表单。考虑以下 HTML:

      <form name="myForm" method="GET" action="">
          <button type="submit" name="email" value="test1@email.web">test 1</input>
          <button type="submit" name="email" value="test2@email.web">test 2</input>
          <button type="submit" name="email" value="test3@email.web">test 3</input>
      </form>
      

      如果您尝试单击其中一个按钮,您会注意到您的查询字符串现在将显示 ?email=test2%40email.web(假设您单击了第二个按钮)。

      这种方法的要点是为您的提交按钮使用相同的name 属性,但为每个按钮分配不同的值。我选择了button 而不是input,因为它能够呈现不同于value 属性的按钮文本(如in this question 所述)。

      在你的 PHP 中应用这个原则,你会得到类似的东西:

      while ($row = mysql_fetch_assoc($sqldata))
      {
      
          echo "<tr><th>Name</th>";
          echo "<td>";
          echo $row['FirstName']." ".$row['LastName'];
          echo "<td>";
          echo $row['Country'];
          echo "<td>";
          echo $row['Profile'];
          echo "<td>";
          echo $row['Email'];
          $Email = $row['Email'];
          echo "<td>";
          echo '<button type="submit" name="email_address" value="' . $Email . '">Send email</button>';
      
      }
      

      然后,您只需检查电子邮件地址的email_address 参数即可。

      【讨论】:

      • 这样做会不会在按钮上打印值?
      • 不,那是美妙的部分——button 允许您将其视为input 类型为submit,同时仍允许您拥有value 属性这与文本的实际按钮不同。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 2018-10-05
      • 2017-08-01
      • 1970-01-01
      • 2017-03-03
      • 2021-11-24
      • 2014-06-01
      相关资源
      最近更新 更多