2013-02-02 59 views
1

我有一些重複的表單字段變量,並希望在POST後將它們放入變量中。php動態地訪問表單變量

$item_code1 = mysql_sanitize($_POST['item_code1']); 
$units1 = mysql_sanitize($_POST['units1']); 
$qty1 = mysql_sanitize($_POST['qty1']); 
$size1 = mysql_sanitize($_POST['size1']); 
$make1 = mysql_sanitize($_POST['make1']); 
$finish1 = mysql_sanitize($_POST['finish1']); 

$item_code2 = mysql_sanitize($_POST['item_code2']); 
$units2 = mysql_sanitize($_POST['units2']); 
$qty2 = mysql_sanitize($_POST['qty2']); 
... 

這些集合形式的變量可以是1 - 10(或更多) 我傳遞多少套,這些表單變量通過櫃檯

$ctr_i = mysql_sanitize($_POST['ctr_i']); 

我如何獲得的變量,如上述以編程方式? 我的意思是循環通過$ctr_i,我想把所有的POST值都放到PHP變量中。

任何想法?

+0

您可以創建一個收集在PHP端的所有值會更容易元素數組也許。 –

+2

你有'extract()'函數嗎?嘗試http://php.net/manual/en/function.extract.php –

回答

2
<?php 
foeach($_POST as $key => $val){ 
$$key = mysql_sanitize($val); 
} 
?> 
+0

偉大的解決方案... – ShuklaSannidhya

+0

但是,如果'$ key'的第一個字母是數字呢? – ShuklaSannidhya

+0

[變量名不能以數字開頭](http://www.php.net/manual/en/language.variables.basics.php)所以當第一個字母創建了'$$ key'時會發生什麼'$ key'是一個數字(0-9) – ShuklaSannidhya

2

你可以嘗試像下面:

$post = $_POST; 
$post = array_map('mysql_sanitize', $post); 
extract($post); 

這一點,你已經設置的變量之後。

2

,如果你有輸入數組在HTML頁面中像

<input type="text" name="field[]" /> 
<input type="text" name="field[]" /> 
<input type="text" name="field[]" /> 

然後你就可以通過

$field = $_POST['field']; 

foreach($field as $a_field) 
{ 
    echo $a_field; 
}