-1

私は CodeIgniter を使用しており、モデルに PHP MySQL ステートメントがあります。

function getAllDevices() {
    $query = $this->db->query("SELECT * FROM Device_tbl ORDER BY Manufacturer");
    return $query->result();
}

次に、次を使用して、コントローラーを介してこれをビューに渡します。

    $this->load->model("get_device");
    $data['results'] = $this->get_device->getAllDevices();

次の PHP を使用して、これを div に出力します。

        <div class="hold-cont">
            <div class="holder">
                <div class="image-hold"><img class="image-icon" src="<?php echo base_url(); ?>assets/images/devices/<?php echo $row->Image; ?>"></div>
            </div>

            <div class="device-name devicename-txt">
                <?php $mod = $row->Model;
                    $model = str_replace(" ","-",$mod);
                ?><a href="<?php echo base_url(); ?>roms?device=<?php echo($row->Manufacturer . '-' . $model);  ?>"><?php echo($row->Manufacturer. ' ' .$row->Model);  ?></a><br>
            </div>
        </div><?php } ?>

これは現在正常に動作しますが、jQuery 関数のオートコンプリートを使用し、$results の JSON 配列を使用する検索ボックスをページに組み込みました。

私がする必要があるのは、PHP を Javascript に「変換」することです。これにより、JSON 配列を使用してページに入力できるようになります。次に、これを使用して、検索ボックスからの選択をクエリに渡し、ページをリロードせずにページのコンテンツを変更できるようにする必要があります。

これについてどうすればよいですか?私は以前、jQuery で ajax 関数を使用してそれを行う方法をまとめましたが、これには、現在実行できない PHP MySql ステートメントを含む URL が必要です。このようにすることの背後にある考え方は、ページがロードされたときに 1 つの SQL クエリのみを実行し、このメソッドを変更できないことです。

4

3 に答える 3

1

PHP が Javascript を「書く」ことを止めるものは何もありません。

適切にフォーマットされた Javascript オブジェクトを手動で、または PHP のjson_encodeメソッド (基本的に PHP オブジェクトを JSON 表記に変換する) を使用して構築する必要があります。PHP オブジェクトが$row次のようになっていると仮定します。

<code>
<script language="text/javascript">
 var jsObject = <?php json_encode($row); ?>
</script>
</code>

Javascript から操作できる PHP $row オブジェクトのプロパティに対応するキーと値を含む jsObject の Javascript オブジェクトを提供します。

于 2012-10-05T10:22:51.320 に答える
0
 json_encode();
 json_decode();

PHP配列をJSON配列に変換して元に戻します。

http://php.net/manual/en/function.json-encode.php

彼らは素晴らしい働きをします。

于 2012-10-05T10:18:11.683 に答える
0

あなたの ajax ページ:

  $query = mysql_query("SELECT * FROM my_table WHERE my_field LIKE '%$input%'");
    while ($row = mysql_fetch_assoc($query)) {
    $json = array();
    $json['value'] = $row['id'];
    $json['name'] = $row['username'];
    $json['image'] = $row['user_photo'];
    $data[] = $json;
    }
    header("Content-type: application/json");
    echo json_encode($data);

このエコーされたjsonエンコードされたデータをjavascriptでフェッチします

これは単なる大まかなコードです。mysql 関数の使用は避けてください。

于 2012-10-05T10:32:53.073 に答える