Php 如何在CodeIgniter中执行此查询
这是控制器方法Php 如何在CodeIgniter中执行此查询,php,ajax,codeigniter,Php,Ajax,Codeigniter,这是控制器方法 public function ajaxLoad() { $data['query'] = $this->db->query("SELECT * FROM items ORDER BY id DESC"); $data['content'] = $this->load->view('item', $data, true); $data = json_encode($data); echo $data; } 这就是调用aja
public function ajaxLoad()
{
$data['query'] = $this->db->query("SELECT * FROM items ORDER BY id DESC");
$data['content'] = $this->load->view('item', $data, true);
$data = json_encode($data);
echo $data;
}
这就是调用ajax的js
var tempScrollTop, currentScrollTop = 0;
$(document).scroll(function(){
currentScrollTop = $(document).scrollTop();
if (tempScrollTop < currentScrollTop )
{
var result = currentScrollTop % 100;
if(result == 0)
{
$.ajax({
url: "ajax/load",
type: "POST",
success: function(res){
$("#content").html(res);
}
});
}
}
else if (tempScrollTop > currentScrollTop )
{
var result = currentScrollTop % 100;
if(result == 0)
{
$("#content").text("Вверх запрос " + result);
}
}
tempScrollTop = currentScrollTop;
})
把这个换成
$data['content'] = $this->load->view('item', null, true);
因此,如果没有$data对象,它是ok的
然后它是空的,但我需要在内容中显示数据库行
我怎样才能解决这个问题
以及echo$数据;-这是将数据传输到js的唯一方法???,我尝试返回$data;,但这不起作用:(
还有一个主要的问题是PHP使用foreach函数生成页面,该函数通过循环生成记录,但是如果我使用ajax将其中一条记录放入其中,那么该部分中的变量会成为数据库查询的值吗?或者我需要使用js设置值
我很困惑,对不起,如果我错了,你能帮我吗
这就是当页面加载时php生成的页面的外观:
<? $i = 1 ?>
<? foreach($query->result() as $q): ?>
<?
$milliseconds = $q->end;
//echo $dd;
//echo time();
/*
$year = date('y', $t);
$month = date('m', $t);
$day = date('d', $t);
$hour = date('h', $t);
$minute = date('i', $t);
$second = date('s', $t);
*/
$d = new Datecalc;
$begin = date("Y-m-d H:i:s");
$end = date($q->end);
#$date = $d->dateDiff($begin , $end);
//$begin = strtotime($begin);
//$end = strtotime($q->end);
$d->dateDiff($begin, $end);
//echo $d->day;
$desc = substr($q->desc, 0, 225);
if(strlen($desc) > 180)
{
$desc = $desc."...";
}
?>
<input type="hidden" value="<?= $milliseconds ?>" id="milliseconds_<?= $q->id ?>" />
<div class="item" id="item_<?= $q->id ?>">
<? if(!empty($_SESSION['role']) && $_SESSION['role'] == 'admin'): ?>
<div class="admin_delete">
<a href="<?= base_url() ?>delete/<?= $q->id ?>"><?= img('css/img/admin_delete.png'); ?></a>
</div>
<? endif; ?>
<div class="desc">
<span class="discount">Скидка <?= $q->discount ?>%</span>
<span class="desc"><?= $desc ?></span>
</div>
<div class="item_pic">
<? $attr = array('src' => $q->image,
'id' => 'item_pic',
'class' => 'item_pic') ?>
<?= img($attr) ?>
</div>
<div class="menu_3">
<ul class="menu_3">
<li class="timer">
<? $attr = array('src' => 'css/img/time.png',
'class' => 'time') ?>
<?= img($attr) ?>
<span id="days_<?= $q->id?>"><?= $d->day ?></span>д.
<span id="hours_<?= $q->id?>"><?= $d->hour ?></span> :
<span id="minutes_<?= $q->id?>"><?= $d->min ?></span> :
<span id="seconds_<?= $q->id?>"><?= $d->sec ?></span>
</li>
<li class="price">
<?= $q->price ?>с.
</li>
<li class="buy">
<div class="small">
99
</div>
<a href="<?= base_url() ?>buy/<?= $q->id ?>">
<?= img('css/img/kupit.png') ?>
</li>
<li class="item_arrow">
<?= img('css/img/item_arrow.png') ?>
<? if($i % 2 == 0): ?>
<ul class="submenu2">
<? else: ?>
<ul class="submenu2">
<? endif; ?>
<li>
<a href="<?= base_url() ?>show/<?= $q->id ?>">
Подробнее
</a>
</li>
<li>
<a href="<?= base_url() ?>how" style="color: #fef102;">Как это работает</a>
</li>
<li style="border-bottom: none;">
<a href="">Рассказать друзьям</a>
</li>
<li style="border-bottom: none;">
<a href=""><?= img('css/img/namba.png') ?></a>
<a href=""><?= img('css/img/mail_ru.png') ?></a>
<a href=""><?= img('css/img/odnoklassniki.png') ?></a>
<a href=""><?= img('css/img/vkontakte.png') ?></a>
<a href=""><?= img('css/img/facebook.png') ?></a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<? $i++; ?>
<? endforeach; ?>
<div class="clear"></div>
试着重写这两行
$data['query'] = $this->db->query("SELECT * FROM items ORDER BY id DESC");
$data['content'] = $this->load->view('item', $data, true);
作为
实际上,作为JSON输出的一部分,您正在从DB(在$data数组中)发送查询响应
echo json_encode($data);
请考虑一下,如果有用的话,回答这个问题:“但是,在那之后,我做了$(“y*内容”).html(结果)-这个查询的结果是这样的:我能做什么?{“内容”:"\\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \n\n\n\n\n\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \n\n\n\n\\t\t\t99\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t什么可以更改此输出?再次查看在您的代码示例中,我有点困惑。视图是JSON还是HTML?您提供的最后一段代码可能是“item”视图,是HTML等。在这种情况下,为什么要调用JSON_encode()关于它的结果?看起来你不需要编码为JSON。哦,当然,是的是html,谢谢你的建议,等等,我还有几个问题,不要走远:)
$db_data['query'] = $this->db->query("SELECT * FROM items ORDER BY id DESC");
$data['content'] = $this->load->view('item', $db_data, true);
echo json_encode($data);