2014-10-04 49 views
0

我已經在PHP中構建了一個表來顯示與他們有關的人員和數據的列表。我希望用戶能夠選擇其中一個用戶發送電子郵件請求。所以我已經爲每個用戶在每行的末尾放置了一個按鈕。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

如果你計劃要做到這一點在HTML5中,你可以改變的提交按鈕,以便它會重定向到一個頁面,在那裏你可以通過$_GET[];

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

然後在得到電子郵件您request.php你可以使用:

$email = $_GET['email']; 
+1

感謝您的幫助。這可能是我想要做的最接近我設想的。 – Nickitfc 2014-10-04 16:01:22

0

我想,你必須從「$電子郵件」更改名稱屬性,我不知道,也許「USER_EMAIL」,並指定$電子郵件變量value屬性。所以在必須處理這個表單的腳本中,您只需要檢索$ _POST ['user_email']的值。

此外,我認爲這是更好地使用$電子郵件在雙引號:

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

因爲你會得到字符串「$電子郵件」,而不是預期的電子郵件地址。

或者您可以爲每個表格行創建一個表單。

0

有很多方法可以解決這個問題,但我個人會選擇使用HTML表單來達到這個目的。考慮下面的HTML:

<form name="myForm" method="GET" action=""> 
    <button type="submit" name="email" value="[email protected]">test 1</input> 
    <button type="submit" name="email" value="[email protected]">test 2</input> 
    <button type="submit" name="email" value="[email protected]">test 3</input> 
</form> 

如果你嘗試點擊其中的一個按鈕,你會發現你的查詢字符串現在將顯示?email=test2%40email.web(假設你點擊第二個按鈕)。

該方法的要點是爲您的提交按鈕使用相同的name屬性,但爲每個按鈕分配不同的值。由於能夠呈現不同於value屬性的按鈕文本(如in this question所述),我選擇button而不是input

將這一原則在你的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參數的電子郵件地址。

+0

通過這樣做不會在按鈕上打印值? – Nickitfc 2014-10-04 16:02:34

+0

不,這是美麗的部分 - 「按鈕」可以讓你把它當作'submit'類型的'input'來處理,同時仍然允許你有一個'value'屬性,它與文本。 – 2014-10-05 01:57:11