目前,我有100个名为contact0到contact101的文本输入框。我正在尝试获取Post数据并将每个字符串命名为其自身。从$contact0 = $_POST['contact0'];一直到$contact101 = $_POST['contact101'];的含义,必须有一种更简单的方法将它们设置为循环或其他形式。总的来说,最终结果是我只希望在文本框中输入的数据在提交时成为文本框的值。任何建议将有助于我为想要的结果做错此事。

for ($i = 0; ;$i++){
if($i < 101){
$contact.$i = $_POST['contact'].$i;
echo $contact.$i;
}
else{
break;
}
}

最佳答案

您可能需要考虑修改HTML表单。您可以创建一个数组,然后将其与数组索引一起引用,而不是创建100个新变量。

的HTML

<input type="text" name="contacts[]" value="Contact 1 name"/>
<input type="text" name="contacts[]" value="Contact 2 name"/>
// etc...


的PHP

$contacts = $_POST['contacts'];
var_dump($contacts);
// prints array(0 => 'Contact 1 Name', 1 => 'Contact 2 Name'...


由于现在是数组,因此您可以引用联系人,例如$contacts[34]并且知道它将是一个有效的条目。

编辑

一个工作示例:

<?php
    if (isset($_POST['contacts'])) {
        $contacts = $_POST['contacts'];
        echo "<p>The contacts are below:</p>";
        print_r($contacts);
    } else {
        echo "<p>Please enter the contacts</p>";
    }
?>

<form method="post" action="">
    <?php for($x = 0; $x < 100; $x++): ?>
    <input type="text" name="contacts[]" value="<?php echo (isset($contacts[$x])) ? $contacts[0] : ''; ?>"/>
    <?php endfor; ?>
    <input type="submit" name="submit" value="submit"/>
</form>


编辑2

现在,我将表单做成一个循环,这意味着它将为我们创建所有联系人输入。最重要的是,如果我们已经过帐表格,则每个字段将具有正确的联系值。

如果您不了解语法,则echo isset($contacts[$x])) ? $contacts[$x] : '';ternary operator,它是单行if/else语句。

也可以在此处进行测试:http://phpfiddle.org/api/run/ugb-cta

10-07 23:00