編輯: 我解決了我的問題: 感謝大家的評論,它幫助我以不同的方式思考: 我不知道返回...; (我相信它只是發送價值沒有結束功能),所以就像我說的,我剛剛開始,我是一個新手... 我解決了我的問題與多維數組,我認爲它應該像我現在要。我在這篇文章的最後發佈了代碼。PHP:函數()檢查表索引數組
--------------------------------------------- ---------------
我想做一個基本的檢查窗體函數,將用於檢查我未來的網站上的所有窗體。它花了我几几小時(幾天...)來做這個短代碼,因爲我是PHP的新手,我剛剛開始幾天前。 這裏是想法(請注意,表單更大,我只是爲了調試而創建了一個更小的版本)。 PHP庫包含有需要()的HTML頁面:
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>
我的問題是,返回的值到輸入端始終的內容「title」,例如如果
$array[0] = $indexed[$index];
$array[1] = define_article_style()[0];
$array[2] = define_article_style()[1];
爲「標題」是等於
$array[0] = "blabla";
$array[1] = "myclass1";
$array[2] = "myclass2";
每隔一個輸入(在這種情況下,它只是「另一個」)的形式的具有相同的值。 我有點困惑,我不明白一切是如何運作的,但我認爲這與輸入分享$array[n]
以獲得它們的價值/風格的事實有關,但我並不真正瞭解如何保留這個概念,並使其工作。 所以,如果你明白什麼不在這裏工作,我會對解釋感興趣(請記住,我是代碼中的新手,還有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;
}
再次,感謝您的回答,很好看,即使是新手不明白的一半時,他們使用此功能在這個其他功能在這裏得到答案,他們做了什麼。 重拳出擊。 問候。
有太多的困惑在這裏,我不知道從哪裏開始array_values回報0基於數字索引的數組,所以你的if語句是沒有意義的。接下來,return語句將退出函數,所以你永遠不會循環多次 – Steve 2014-09-13 14:36:28