2011-04-07 47 views
1

我有一个提交多人的细节在$ _REQUEST我得到一个即形式:如何通过REQUEST循环并使用动态变量命名? PHP! :)

title1 = Mr, 
first_name1 = 'Whatever', 
surname1 = 'Whatever', 

title2 = Mr, 
first_name2 = 'Whatever', 
surname2 = 'Whatever' 

有明显更多,但这种解释这种情况。有可能是被提交十人,因此将上升到title10,first_name10,surname10 ...

我一直在尝试使用:

for ($x = 1; $x < 4; $x++) { 

    $a = new applicant(); 
    $a->title  = $_REQUEST['title'+$x]; 
    $a->first_name  = $_REQUEST['first_name'+$x]; 
    $a->surname   = $_REQUEST['surname'+$x]; 
    $a->Save(); 
} 

但是似乎你不能做到这一点+ $ x位。我知道有一种解决方法,因为我记得做了很久以前,但我没有我的代码在工作:/

任何想法家伙?

回答

3

PHP使用.连接字符串,+用于添加数字;这与其他一些使用+的语言不同。可能混淆,但不太可能改变。

'title' + $x将尝试添加零件,就像它们是数字一样,必要时进行铸造。

'title' . $x应该做你似乎在寻找的东西。

阅读也:在PHP The Fine Manual

1

字符串连接使用操作.没有+。例如:$_REQUEST['title' . $x];

0

您可以在HTML表单中使用相同的属性名称为多张的投入,像这样:

<input name="title[]" /> 
... 
<input name="title[]" /> 

,当在GET/POST提交给PHP脚本将作为一个数组已经。

0

你可以试试这个:

$a = "first part"; 
$b = "second part"; 

$c = ${$a.$b}; 

或类似

$c = $_REQUEST[${$a.$b}]; 

反正你上心。