-1

$key => $values の配列を、$key が値と等しい while ループを使用して、db_query から構築しようとしています。構文が正しくないと思います

function _form(){

$person = db_query("SELECT name FROM {person}");                 
$columnValues = Array();

while ($row = db_fetch_array($person) ) {
  $columnValues[] = array($row['name']=> $row['name']);
}
.
.
.

いくつかの質問を聞きたいんです。

  1. 実際の「選択」メニュー項目の値を引き出すためにキーを作成する必要がありますか?
  2. キーを作成する必要がある場合、while ループで、同じ値でキー設定された各要素に対して新しい配列を作成しない方法はありますか (例: リンゴ => リンゴ)
  3. チェックボックスと選択から値を引き出して、順序付けられた番号ではなく文字列を取得する正しい方法は何ですか? (例: form_values['value']['select_name'] 、 form_values['value']['checkboxes_name'] のように、最初に選択されたアイテム 'apple' が返され、2 番目にチェックされたアイテム 'apple' が返されます。) ... i likeりんご。
4

1 に答える 1

2

ここで間違いを犯しているようです-キーと値のペアでは、値を配列にすることはできません

while ($row = db_fetch_array($person) ) {
   $columnValues[] = array($row['name']=> $row['name']);
}

する必要があります

while ($row = db_fetch_array($person) ) {
   $columnValues[$row['name']] = $row['name'];
}

答え:

  1. はい、常にキーと値のペアを追加する必要があります。値は表示されるものであり、キーはフォーム送信で送信されるものです。
  2. はい、上記は、各アイテムのキー => 値ペアの配列ではなく、キー => 値ペアを作成する方法を説明しています。
  3. 個々のチェックボックス項目には値があり、チェックボックスの値をディスプレイの値と同じに設定できます。
于 2013-02-16T09:17:50.447 に答える