2013-02-14 73 views
0

我真的陷入了這個愚蠢的問題。我有一個動態表單變量test_nrnr是動態的。然後我想追上,在POST這樣:變量在POST - php

$test = $_POST['test_'.$nr.'']; 

但這種狀態並沒有莫名其妙的工作,我想知道其中的錯字是。對我來說,這在語法上是正確的。此問題導致此循環永久運行:

$in=1; 
while($in<5){ 
    $time_.$in=$_POST['zeit_'. $in .'']; 
    $erfahrung_. $in = $_POST['berufserf_'. $in .'']; 
    $in++; 
} 

有什麼想法?

+0

這個'nr'是怎麼產生的?爲什麼連接'$ nr'後的空白空間? – hjpotter92 2013-02-14 12:15:48

+0

@BackinaFlash,與js。 – doniyor 2013-02-14 12:16:08

回答

0
$time_.$in= ... 

是無效的語法。您正在設置$in = ...,然後連接$time_到它,實際上只改變$in。使用數組來代替:

$times = array(); 
$erfahrung = array(); 
for ($i = 1; $i <= 5; $i++) { 
    $times[$i] = $_POST['zeit_' . $i]; 
    $erfahrung[$i] = $_POST['berufserf_'. $in]; 
} 
+0

感謝但''times_nr''也有動態部分:''nr''那麼呢? – doniyor 2013-02-14 12:20:10

+0

@ doniyor我在代碼中看不到'$ times_nr'。但是你可以用'$ times [$ nr]'來訪問所有的時間。 – 2013-02-14 12:40:47

+0

did not你明白爲什麼我這樣做:''時間_。$ $'''。這就是爲什麼我想要'times_1''',''times_2'',...等等的原因。 – doniyor 2013-02-14 18:32:32

0

如果你

$time_.$in = 'something'; 

它將以「東西」設置$,然後返回$ time_的級聯和「東西」

正確的語法是:

$varName = 'time_' . $in; 
$$varName = 'something'; 

當然,在這裏使用數組會更方便。

+0

你確定嗎?你測試過了嗎? – doniyor 2013-02-14 12:18:46

+0

簡單測試:http://phpfiddle.org/main/code/chb-p1t – fsw 2013-02-14 12:24:37

+0

並附加到$ _time我不是說它會被修改。澄清答案。 – fsw 2013-02-14 12:27:08

0
$in=1; 
while($in<5){ 
    if(array_key_exist('zeit_'. $in, $_POST)){ 
    $time_.$in=$_POST['zeit_'. $in .'']; 
    $erfahrung_. $in = $_POST['berufserf_'. $in .'']; 
    $in++; 
} 
}