来自text和int Value的Bulid String变量

时间:2018-03-08 08:18:07

标签: php

我有以下问题。我想创建一个循环,将字符串变量的值设置为:textBox + number,例如textBox2。我现在有这个代码:

 <?php
$counter=$_POST["Counter"];

While ($counter > 0){
    (string)$textbox='textBox'+(string)$counter;
    $referent = $_POST[$textbox];
    echo $referent;
    $counter = $counter - 1;
}

但出现以下错误:

Warning: A non-numeric value encountered in C:\xampp\htdocs\Eventtool\add_new_element.php on line 5

Notice: Undefined offset: 2 in C:\xampp\htdocs\Eventtool\add_new_element.php on line 6

Warning: A non-numeric value encountered in C:\xampp\htdocs\Eventtool\add_new_element.php on line 5

Notice: Undefined offset: 1 in C:\xampp\htdocs\Eventtool\add_new_element.php on line 6

有人可以帮助我,我没有得到解决方案。

谢谢:)

1 个答案:

答案 0 :(得分:0)

正如评论中已经注意到的,php中的字符串连接是用.完成的,如果你做了一些连接,php会将变量的值转换为字符串。因此,您可以将while简化为:

while ($counter > 0){
    $textbox = 'textBox' . $counter;
    $referent = $_POST[$textbox];
    echo $referent;
    $counter = $counter - 1;
}

另外,正如我所看到您迭代$_POST类似命名的变量:textBox1textBox2textBox3等,我建议您重建您的HTML表单并在文本框名称中使用[]

<textarea name="textBox[]"></textarea>
<textarea name="textBox[]"></textarea>
<textarea name="textBox[]"></textarea>

在这种情况下,您可以使用简单的$_POST['textBox']迭代foreach

foreach ($_POST['textBox'] as $textbox) {
    echo $textbox;
}

另外,如您所见,此处您不需要$_POST['counter']