-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。

您需要手动或使用json_encodePHP 的方法(本质上将 PHP 对象转换为它的 JSON 表示法)来构建一个适当格式的 Javascript 对象。假设你的 PHP 对象是$row这样的:

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

将在 jsObject 中为您提供一个 Javascript 对象,其中包含与 PHP $row 对象的属性相对应的键和值,然后您可以从 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);

并在您的 javascript 中获取此回显的 json 编码数据

这只是一个粗略的代码,避免使用mysql函数。

于 2012-10-05T10:32:53.073 回答