1

SQLにクエリを実行して、先行入力に使用する値の配列を取得しようとしていますが、期待する結果にさえ近づかないため、配列の基本が欠落しているようです。

個別のデータについてのみSQLから「名前」列を収集したい

これが私のMySQLクエリです

$data['typeahead'] = $this->db->query('SELECT DISTINCT Name from table')->result_array();

これがvar_dumpに出力されます

array(287) { 
 [0]=> array(1) { ["Name"]=> string(16) "'67 Shelby GT500" } 
 [1]=> array(1) { ["Name"]=> string(8) "Tooligan" } 
 [2]=> array(1) { ["Name"]=> string(24) "'67 Pontiac Firebird 400" } 
 [3]=> array(1) { ["Name"]=> string(17) "Volkswagen Beetle" } 
}

私がやろうとしているのは、列のデータを使用して配列を作成することだけです。私はFrameWorkにCodeIgniterを使用しており、BootstrapのJSを使用して先行入力を処理しますが、データ配列セクションで立ち往生しています。

どんな助けでも大歓迎です。MySQL以外の配列を先行入力として使用する方法についてのチュートリアルをたくさん見つけましたが、MySQLで動作するものはありません。

^^解決しました

今すぐ発行:

Typeaheadは配列からデータをプルしていません

コントローラコード:

 $name_array = $this->db->query('SELECT DISTINCT Name from table')->result_array();

 $typeahead_string = '';
 foreach ($name_array as $name)
 {
  $formatted_name    =  '"' . $name['Name'] . '", ';
  $typeahead_string .= $formatted_name;
 }

 $option_list = "[" . rtrim($typeahead_string, ", ") . "]";
 $data['typeahead'] = $option_list;

コードを表示:

<input type="text" class="span3 search-query" placeholder="Search" id="typeahead" data-provide="typeahead" data-source="<?php echo $typeahead; ?>"><button type="submit" class="btn"><i class="icon-search"></i></button>
4

2 に答える 2

2

次のように、クエリが現在生成している結果を繰り返し処理し、Name要素を新しい配列に追加できます。

$name_array = $this->db->query('SELECT DISTINCT Name from HWC')->result_array();

$typeahead_array = array();
foreach ($name_array as $name)
{
    $typeahead_array[] = $name['Name'];
}

$data['typeahead'] = $typeahead_array;

編集:

Bootstrapで先行入力機能を使用するには、データソースを文字列のリストにすることができます。次に例を示します。"Orange", "Apple", "Banana"

オプションのリストである文字列を変数に割り当て、$data['typeahead']それをビューに渡して、関連する属性にエコーすることができます。

コントローラ

以下のループは、先行入力のすべてのオプションを含む文字列変数を作成します。各要素を引用符で囲み、最後にコンマを追加します。したがって、Appleになり"Apple",ます。次に、各要素を文字列に追加します。

$name_array = $this->db->query('SELECT DISTINCT Name from HWC')->result_array();

$typeahead_string = '';
foreach ($name_array as $name)
{
    $formatted_name    =  '"' . $name['Name'] . '", ';
    $typeahead_string .= $formatted_name; 
}

$option_list = rtrim($typeahead_string, ",");  //Strips the last comma and any whitespace from the end string

$data['typeahead'] = $option_list;

意見

ビューへの入力は次のようになります。重要な部分は、オプションリストがエコーされる場所です。data-source="[<?php echo $typeahead; ?>]"

<input type="text" data-provide="typeahead" data-items="4" data-source="[<?php echo $typeahead; ?>]">

うまくいけば、これが役立ちます!

于 2012-09-01T22:28:19.473 に答える
0

まだ私にはうまくいきません。要素を調べると、この「uncategories」、「php」のようなデータが表示されます。つまり、最初は常にスペーシングです。

代わりにこれを使用して方法を見つけまし$formatted_name = '"' . $name['Name'] . '", ';$formatted_name = '&quot;' . $name['Name'] . '&quot;, ';

于 2013-04-20T02:37:20.790 に答える