2012-09-24 85 views
1

PHP/HTML問題HREF鏈接導致PHP的if語句

我希望這不是一個愚蠢的問題,但我想將數據從兩個環節處理到一個if語句。我可以用兩個形式做到這一點很容易,因爲形式可以有提交按鈕,其名稱:

<form action="process.php" method="post"> Enter your name: <input type="text" name="name" size="20"><br /> 
<input type="submit" name="edit" value="Edit"> 
<input type="submit" name="delete" value="Delete"> 
</form> 

的如果process.php語句可以是如果編輯該其他人這樣做。

我想要做的是同樣的事情,但從href鏈接。我如何設置if語句,因爲標籤在HTML5中不能有名字?

感謝您的幫助。

+0

你爲什麼不只是您在process.php一個$ _GET參數的存在? – trickyzter

+1

只需將其添加爲查詢字符串的一部分:'a href =「process.php?edit = Edit」'。唯一的區別是你需要查看'$ _GET'而不是'$ _POST'來查看它是否被設置 - 儘管'$ _REQUEST'將覆蓋兩種可能性。 – andrewsi

+0

所以目前我的鏈接設置爲process.php?id = $ id。我會將其更改爲process.php?id = $ id&action = edit? – robk27

回答

2

E.g:

<a href="process.php?action=edit">Edit</a> 

<?php 

$action = $_GET['action']; 

if($action == 'edit'){ 
// edit. 
}else{ 
// else another action. 
} 
+0

謝謝。是否有可能爲多個頁面使用不同的東西來編輯/刪除相同的鏈接?例如:帶有編輯/刪除的profile.php鏈接到帶有if語句的process.php,然後帶有帶if語句的編輯/刪除鏈接到process.php的categories.php。你怎麼能區分這兩個頁面,以便你可以運行不同的SQL查詢取決於你來自哪個頁面? – robk27

+0

你可以添加另一個GET變量,例如。然後問if($ _ GET [「site」] ==「profile」){} ... – SPie

+0

哇,好吧,不知道...謝謝! – robk27

2

您可以添加自定義$ _GET變量,然後評估它們。例如example.com/form?action=editexample.com/form?action=delete,然後在PHP中:

$action = $_GET['action']; 
if($action === 'edit') { 
    this; 
} else if ($action === 'delete') { 
    that; 
} 
1

不知道如果我確切地瞭解它。 什麼關於做這樣的事情:

<a href="process.php?delete">Delete</a> 
<a href="process.php?edit">Edit</a> 

然後

if(defined($_GET["delete"])){ 
} 
else if(defined($_GET["edit"])){ 
} 
2

除非你明確地設置窗體的方法來get,形式通常會發送請求作爲post。您可以通過調用$_POST["edit"]訪問PHP中的這些數據。

常規鏈接可以傳遞URL字符串中的變量,如http://example.com/process.php?edit=true。你可以通過調用$_GET["edit"]來訪問這些變量。

如果你想使用相同的process.php文件,你可以有代碼都$ _ POST和$ _GET數據使用$_REQUEST超全局(http://php.net/manual/en/reserved.variables.request.php),它結合了從$ _GET,$ _ POST和$ _COOKIES

數據

在這種情況下,你的PHP代碼將改爲:

if ($_REQUEST["edit"]) { 
    /* Some code */ 
} 
elseif ($_REQUEST["delete"]) { 
    /* Some other code */ 
}