2010-12-21 176 views
2

我有一個HTML輸入字段,並且我有一些id指定的每個輸入字段,現在如何使用此輸入字段id來標識字段。如何通過PHP讀取輸入字段的ID?

實施例:

<input type='text' id='float' name='attributename' value='' maxlength='30'/> 

我需要驗證輸入字段的ID爲浮動,然後再將其在特定領域分貝插入輸入字段的值。

請幫我..

回答

7

它取決於您使用哪種方法傳輸數據(由form元素的method屬性指定)。

E.g.搭配:

<form method="POST"> 
    <input type='text' id='float' name='attributename' value='' maxlength='30'/> 
    <input type="submit" /> 
</form> 

您可以在表單提交時通過$_POST['attributename']訪問PHP中的數據。 $_POST是一個通過POST請求保存數據發送的關聯數組。

注意:輸入元素的name是重要的屬性,而不是ID。該ID是而不是轉移到服務器,它只在DOM中起作用。只有namevalue被髮送到服務器。所以如果你可能想設置name="float"

更多信息:Variables From External Sources。您也可能想要閱讀有關$_POST$_GET(GET是另一種方法,用於通過URL發送數據)。

2

當你提交表單你可以使用輸入name=""屬性從拉動值:

$_POST['attributename']; 
12

你不能。將數據發佈到服務器時,使用name屬性。 id與PHP沒什麼關係。

+1

即使你倒退,這是真的。 :o) – deceze 2010-12-22 01:20:44

+0

誰下了他的回覆...... ??? Urs是Precise和最好的謝謝N E WAYS之一 – 2010-12-22 05:45:56

4

當PHP通過GET或POST獲取數據時,它不知道與給定數據相關聯的輸入的id。不過,你知道這個名字。

最簡單的方法是使名稱和ID匹配,或者是能夠從名稱派生的ID,像這樣:

name: float 
id: float_id 

name: address 
id: address_id 

的原因是DOM使用ID,但它有與PHP的執行無關。 PHP只獲取名稱。既然您可以控制服務器端和客戶端代碼,那麼您可以按照上面的建議選擇一個命名約定,從而確定該ID是什麼。

2

首先,id應該是唯一的每個元素。

您可以[]後綴字段名稱創建一個陣列,讓您可以在以後對其進行處理,如:

<input type='text' id='float1' name='attributename[]' value='' maxlength='30'/> 
<input type='text' id='float2' name='attributename[]' value='' maxlength='30'/> 
<input type='text' id='float3' name='attributename[]' value='' maxlength='30'/> 
從PHP

現在,您可以使用foreach訪問這樣每個字段的值:

foreach($_POST['attributename'] as $value){ 
    echo $value . '<br>'; 
} 

如果它是一個單一的領域,雖然,你可以通過它的名稱訪問它:

echo $_POST['attributename']; 
1

在PHP中,你只能訪問輸入的name,形式已經使用method="get"method="post",分別被提交至$_GET['attributename']$_POST['attributename']後。

也許你的意思是使用javascript來定位該字段;你可以使用document.getElementById('float')來做到這一點。

0

是的,欺騙最好。

基本上,PHP(以及所有web編程)中的所有內容都需要key = value對。所以,如果你沒有鑰匙,你反過來就沒有價值。如果表單元素只有一個ID而沒有NAME,那麼傳遞給PHP的變量將不存在。

測試的最好方法是讓HTML表單元素測試時使用「GET」而不是「POST」,這樣,當提交表單時您會在地址欄中看到key = value對到行動的方法。那麼你必須做的就是使用$_GET而不是$_POST來拉取變量。

相關問題