编辑: 我解决了我的问题: 感谢大家的评论,这有助于我以不同的方式思考: 我不知道回归......;表现得这样(我相信它只是发送价值而不是结束功能),所以就像我说的那样,我只是开始,我是'新手...... 我用多维数组解决了我的问题,我认为它应该像我现在想的那样工作。我在这篇文章的末尾发布了代码。
-------------------------------------------- ----------------
我试图制作一个基本的检查表单功能,用于检查我未来网站上的所有表单。我花了几个小时(几天......)来做这个简短的代码,因为我是PHP的新手,我刚刚开始几天前。 这是Idea(请注意,表单更大,我只是为了调试创建了一个较小的版本)。 PHP库包含在HTML页面中的require():
function check_form() {
$n = 0;
$indexed = array_values($_POST);
// How should I do to make this loop,
// to edit the HTML of each input one by one,
// without modifying other input that the one corresponding
// to the $n position in the table ?
if (isset($indexed[$n])) {
if (!empty($indexed[$n])) {
$value = $indexed[$n];
$icon = define_article_style()[0];
$color = define_article_style()[1];
} else {
$value = define_article_style()[4];
$icon = define_article_style()[2];
$color = define_article_style()[3];
}
$form_data_input = array($value, $icon, $color);
return $form_data_input;
}
}
HTML表单:
<form role="form" method="post" action="#checked">
<div class="form-group <?php echo check_form()[1]; ?>">
<label class="sr-only" for="title">Title</label>
<input type="text" name="title" class="form-control input-lg" id="title" placeholder="Enter title * (min: 5 characters, max: 30 characters)" value="<?php echo check_form()[0]; ?>">
<?php echo check_form()[2]; ?>
</div>
<div class="form-group <?php echo check_form()[1]; ?>">
<label class="sr-only" for="another">Title</label>
<input type="text" name="another" class="form-control input-lg" id="another" placeholder="Enter title * (min: 5 characters, max: 30 characters)" value="<?php echo check_form()[0]; ?>">
<?php echo check_form()[2]; ?>
</div>
<button type="submit" class="btn btn-default" name="check_article" value="#checked">Check</button>
</form>
我的问题是返回到输入的值始终是&#34; title&#34;的内容,例如,如果
$array[0] = $indexed[$index];
$array[1] = define_article_style()[0];
$array[2] = define_article_style()[1];
for&#34; title&#34;等于
$array[0] = "blabla";
$array[1] = "myclass1";
$array[2] = "myclass2";
表单的所有其他输入(在这种情况下,它只是&#34;另一个&#34;)具有相同的值。
我有点困惑,我不太清楚一切是如何运作的,但我认为这与输入共享$array[n]
以获得他们的价值观/风格这一事实有关,但我不知道&#39}我真的明白如何保持这个概念并让它发挥作用。
因此,如果您了解什么不在这里工作,我会对解释感兴趣(请记住,我是代码中的新手,以及PHP。)
谢谢。
问候。
-------------------------------------------- ----------------
这是我的工作代码(我必须验证,但我认为它可以正常工作)。
function check_form() {
$n = 0;
$index_post = array_values($_POST);
while ($n < count($index_post)) {
if (isset($index_post[$n])) {
if (!empty($index_post[$n])) {
$value[$n] = $index_post[$n];
$color[$n] = define_article_style()[0];
$icon[$n] = define_article_style()[1];
} else {
$value[$n] = define_article_style()[4];
$color[$n] = define_article_style()[2];
$icon[$n] = define_article_style()[3];
}
}
$array_all = [$value, $color, $icon];
$n = $n + 1;
}
return $array_all;
}
再次,感谢您的回答,很高兴看到即使是新手也不了解他们在使用此功能时所做的一半,而不是其他功能。 表示赞许,满意,胜利。 问候。
答案 0 :(得分:0)
您的代码中有很多错误:
首先:我认为你有一个视图文件“form.php”以及“submit_form.php”中提交表单的过程,所以在你的html代码中你需要修复它(动作)属性):
<form role="form" method="post" action="submit_form.php">
第二:您有2个输入标签,名称为“title”和“another”,因此$ _POST数组有2个索引: $ _POST [“title”],$ _POST [“另一个”],你可以查看这个数组的内容:
var_dump($_POST); // this function print all the data of this array, check it.