2012-09-17 31 views
0

我有兩個領域的投入也有同樣的名字「名」

我想知道我必須做的,捕捉到在陣列中的兩個字段的表單,

例如,如果field1 get post和field2是空的,我想獲得一個數組[0] 與我正在尋找的數據,如果field1和field2 submited,我想有數組[0]和數組[1]人口稠密。

當前我所擁有的表單只會在兩個字段都被填充的情況下捕獲,並且如果其中一個字段被填充,它就不會被捕獲。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Untitled Document</title> 


<?php 

$name=$_POST['name']; 


if($name) 
{ 

    echo $name; 

    } 


?> 


</head> 

<body> 


<form action="<?php $_SERVER['PHP_SELF']?>" method="post"> 

    <p>name 
    <input name="name" id="name" type="text" /> 



    </p> 
    Name 

    <input name="name" id="name" type="text" /> 
    <p>&nbsp;</p> 


    <input name="submit" type="submit" /> 
</form> 
</body> 
</html> 

我想變量名的最終結果是一個數組,將有兩個數據從字段1和字段2捕獲。

感謝使用$_POST['name'][0]$_POST['name'][1]

+1

有什麼理由不使用不同的字段名稱?儘管許多瀏覽器支持具有相同名稱的多個字段作爲列表/數組傳遞(當附加'[]'s)時,它不是官方規範,應該避免,除非有很好的理由 – Basic

+0

沒有什麼說你不能做這個,我不知道不支持它的瀏覽器。 '[]'表示法是PHP的補充,不應該首先需要。 – GolezTrol

+0

@基本我必須使用相同的名稱導致該字段將是一個動態的Java腳本字段。例如,如果用戶想要添加其他名稱,則可以單擊添加按鈕,並顯示新的字段。謝謝 –

回答

7

更改每個字段的名稱name[],那麼他們可以在PHP訪問。

編輯:您也可以在您的HTML中使用name[1]明確設置索引,甚至name[foo],然後使用$_POST['name']['foo']從PHP訪問。

+0

基本上,名稱中的[[]'變成'$ _POST [']名字']'到數組中。 :-) –

+0

@火箭 - 總之,是的:) – slugonamission

+0

不幸的是,這是必要的。將它們命名爲'name'並將它們作爲一個數組來處理是完全有效的,但PHP並沒有內置的功能來支持它,所以添加括號是最簡單的解決方案。編輯:我會添加另一個關於索引的加法,但唉,我不能。 – GolezTrol