我在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>";
谢谢!
答案 0 :(得分:0)
如果您计划在HTML5中执行此操作,则可以更改提交按钮,以便将其重定向到页面,您可以通过$_GET[];
echo "<input type=\"submit\" formaction=\"request.php?email=".$Email."\" value="Submit">\";
然后在你的request.php中你可以使用:
$email = $_GET['email'];
答案 1 :(得分:0)
我认为,您必须更改&#34; $ Email&#34;来,我不知道,也许&#34; user_email&#34;并将$ email变量分配给value属性。因此,在必须处理此表单的脚本中,您只需要检索$ _POST [&#39; user_email&#39;]的值。
另外我认为在双引号中使用$ Email更好:
echo "<input name='$Email'" ...>;
因为你会得到字符串&#39; $ Email&#39;而不是预期的电子邮件地址。
或者您可以为每个表格行创建一个表单。
答案 2 :(得分:0)
有许多方法可以解决这个问题,但我个人会选择使用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
属性不同的按钮文字(如in this question所述),我选择input
而不是value
。
在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
参数中的电子邮件地址。