2014-10-02 44 views
0

我想在post方法中使用變量而不是名稱我已經試過了這段代碼,但它看起來並不正確我該怎麼做,這是我的PHP代碼如何在php中使用變量名回溯post後的值

<?php 
$answer=""; 
for($i=0 ; $i<2 ; $i++){ 

    if(isset($_POST['{$i}'])){ 
$answer.=$_POST['{$i}'].","; 
} 
else{$answer.="0,";} 
} 
echo $answer; 
?> 

,這是我的表單:

<form method="post" action="data.php"> 
<lable for="1" >1</lable> 
<input type="radio" name="1" value="1"/> 
<input type="radio" name="1" value="2"/> 
<input type="radio" name="1" value="3"/> 
<input type="radio" name="1" value="4"/><br/> 
<lable for="2" >2</lable> 
<input type="radio" name="2" value="1"/> 
<input type="radio" name="2" value="2"/> 
<input type="radio" name="2" value="3"/> 
<input type="radio" name="2" value="4"/> 
<input type="submit" name="submit" value="submit" /> 

回答

0

你並不需要住變量名這樣,只需要直接訪問它。它是一個數組,這意味着它支持鍵的想法。

(我不知道用整數數字鍵是一個好主意,100%,不過,你可能希望用文本值前面加上他們防止莫名其妙的錯誤)

$_POST[ $i ] 

可以用文字前面加上動態地建立他們像這樣的html:

<input type="radio" name="radio_1" value="1" /> 

,然後訪問他們像這樣在PHP:

$_POST['radio_' . $i]; 
+1

'$ i'是一個整型變量。你的代碼會返回'$ _POST'數組中的第一個元素,而不一定是其字符串索引等於'$ i'的字符串表示的元素。 '$ _POST [「$ i」]'是去這裏的最佳方式。* – 2014-10-02 11:09:41

+0

我必須生成100組單選按鈕並使用post方法回放主題是否有任何方式使用文本? – 2014-10-02 11:11:08

+0

增加了一個使用前綴文本訪問它們的示例。 – Erik 2014-10-02 11:28:15

0

你的for循環應該是這樣的

for($i=1; $i<=2; $i++) 

和值後shoudl通過

$_POST[$i] 
0

檢查foreach循環將是在這種情況下更好的:例如:

$answer=""; 
foreach($_POST as $key => $value){ 
    $answer.= $value.","; 
} 

echo (!!$answer?$answer:'0,'); 
+0

一些這些職位價值沒有設置,他們應該有0的價值,如果我使用這樣的foreach結果將不是真的 – 2014-10-02 11:24:53

+0

爲什麼不呢?如果該值爲0,那麼for循環會給出相同的結果。 – 2014-10-02 11:27:20