标签: codeigniter

jQuery自动完成ajax请求不显示返回的数据

当我在调试开发人员工具上看到ajax请求响应数据但数据未在文本框中呈现.数据包含一些特殊字符,如图所示.

响应函数究竟出了什么问题?我应该添加什么(比如utf-8编码)来显示特殊字符的ajax调用?

在此输入图像描述

HTML:

<select name="selCat">
    <option>....</option>
</select>

<input class="col-3" type="text" id="txtPOI" name="txtPOI" />
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$("#txtPOI").autocomplete({
        source: function(request, response) {
            $.ajax({
                url: '<?php echo site_url("crowd/get_POIs") ?>',
                data: {cat: selectedCode, q: request.term},
                dataType: "json",
                type: "post",
                success: function(data) {
                    response(data);
                },
                fail : function ( jqXHR, textStatus, errorThrown ) {
                    console.log(jqXHR);
                    console.log(textStatus);
                    console.log(errorThrown);
                },minLength: 3
            });
        }
    });
Run Code Online (Sandbox Code Playgroud)

控制器:

function get_POIs(){
        $cat = $this->input->post('cat');
        $q = $this->input->post('q');
        //echo $cat;

        if (isset($cat) && isset($q)){
            $cat = strtolower($cat);
            $q = strtolower($q);
            $data=$this->crowd->get_POIs($cat,$q);
            //echo "aa"; …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax jquery codeigniter

6
推荐指数
1
解决办法
1690
查看次数

不等于mysql查询codeigniter中的条件

这个我的模型代码:

    public function select($id)
    {           
        $this->db->select('Something');    
        $this->db->from('tbl_somthing');
        $this->db->where('tbl_somthing.User_id',$id);
        $this->db->where('tbl_somthing.Something',0,FALSE);
        $query = $this->db->get();
        return $query->result();
    }
Run Code Online (Sandbox Code Playgroud)

我怎样才能从字段中选择非零值?以上查询无效.

php mysql codeigniter

6
推荐指数
1
解决办法
4万
查看次数

从UploadiFive向Codeigniter控制器发送数据

我试图用来UploadiFive上传一些文件,并在上传时将信息添加到数据库中.用户在表单中输入一些详细信息,然后单击上载,此时上载文件并将表单中的信息添加到具有相应文件名的数据库中.

我已经有了上传文件的工作,但每次文件完成上传时我都需要发布表单.它正在发布表单,但我很难从上传的文件中获取文件名.代码如下:

HTML页面:

<?php echo form_open_multipart('upload/do_upload', 'id="upload_form" name="upload_form"');?>
    <div id="queue"></div>
    <input id="file_upload" name="file_upload" type="file" multiple="true">
    <div id="target"></div>
</form>

<script type="text/javascript">
    <?php $timestamp = time();?>
    $(function() {
        $('#file_upload').uploadifive({
            'auto'             : true,
            'checkScript'      : '<? echo base_url();?>uploadify/check-exists.php',
            'formData'         : {
                                   'timestamp' : '<?php echo $timestamp;?>',
                                   'token'     : '<?php echo md5('unique_salt' . $timestamp);?>'
                                 },
            'queueID'          : 'queue',
            'onError'          : function(errorType) {
                                    alert('The error was: ' + errorType);
                                },

            'uploadScript'     : '<? echo base_url();?>uploadify/uploadifive.php',
            'onUploadComplete' : function (event, queueID, fileObj, response, data, …
Run Code Online (Sandbox Code Playgroud)

php codeigniter uploadify uploadifive

6
推荐指数
1
解决办法
452
查看次数

零大小的回复:PHP在变量赋值时崩溃

我偶尔遇到一个问题,它让webbrowser显示消息"Zero size reply"(Firefox).Chrome显示"ERR_EMPTY_RESPONSE".我正在使用CodeIgniter(仍然是版本2.xx).

在通话中,我验证一些帖子变量,插入数据库记录,并发送电子邮件.但是,电子邮件方法会加载日志消息的语言文件.在此调用结束时,在类system/core/Lang.php中,包含文件并扩展类数组.

以下行(Lang.php,第126行)执行以下语句:

$this->is_loaded[] = $langfile;
Run Code Online (Sandbox Code Playgroud)

数组已初始化,通常运行正常.但在这种特殊情况下,这是导致PHP服务器崩溃的确切行(我对我得到的空响应的解释).

我现在正在运行强制PHP 5.5.19,但错误也显示为5.2.17.

任何人解释为什么会这样?如果我尝试通过以类似方式分配变量来重现错误,我永远不会收到相同的消息.此外,我收到此错误的唯一相似之处是我之前发过邮件.

更新:这是PHP_INFO:http://awesumgrades.ch/phpinfo.php

更新2:这是我尝试的完全:

我尝试在该行之前转储所有内容:

var_dump($this->is_loaded);
var_dump($langfile);
exit("I reached here");
$this->is_loaded[] = $langfile;
Run Code Online (Sandbox Code Playgroud)

收到此输出:

array(0) { } string(14) "email_lang.php" I reached here
Run Code Online (Sandbox Code Playgroud)

现在,当我执行此操作时(将数组赋值放在前面):

$this->is_loaded[] = $langfile;
var_dump($this->is_loaded);
var_dump($langfile);
exit("I reached here");
Run Code Online (Sandbox Code Playgroud)

我得到了ERR_EMPTY_RESPONSE(铬).

当我转储时$this,这是对象:

object(CI_Lang)#11 (2) { ["language"]=> array(0) { } ["is_loaded"]=> array(0) { } }
Run Code Online (Sandbox Code Playgroud)

当我回到调用函数时,我得到以下行(在core/libraries/Email.php):

protected function _set_error_message($msg, $val = '')
{
    $CI =& get_instance()
    $CI->lang->load('email'); // <-- this is the …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

6
推荐指数
1
解决办法
818
查看次数

Codeigniter加载库并使用别名调用

我想知道在调用库后是否可以使用别名,让我们说:

$this->load->library('email','em');
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

php codeigniter

6
推荐指数
1
解决办法
3592
查看次数

Group By Three列在CodeIgniter中不起作用

我需要一个Group By三列的结果,SQL完美无缺.我在CodeIgniter框架中使用它时遇到了这个问题; 它不执行查询.我的代码和SQL如下.

码

$this->db->select(['trk.userid AS user_id', 'scr.course AS course_id'])
                     ->from('mdl_scorm scr')
                     ->join('mdl_scorm_scoes_track trk', 'scr.id = trk.scormid', 'inner')
                     ->join('mdl_course_modules mcs', 'mcs.instance = scr.id', 'inner')
                     ->where_in('trk.value', ['completed','incomplete','passed'])
                     ->group_by(['scr.course', 'trk.userid', 'trk.scormid'])
                     ->order_by('trk.userid', 'DESC');
Run Code Online (Sandbox Code Playgroud)

SQL

SELECT `trk`.`userid` AS user_id, `scr`.`course` AS course_id 
FROM (`mdl_scorm` scr) 
INNER JOIN `mdl_scorm_scoes_track` trk ON `scr`.`id` = `trk`.`scormid` INNER JOIN `mdl_course_modules` mcs ON `mcs`.`instance` = `scr`.`id` 
WHERE `trk`.`value` IN ('completed', 'incomplete', 'passed') 
GROUP BY `scr`.`course`, `trk`.`userid`, `trk`.`scormid` 
ORDER BY `trk`.`userid` DESC LIMIT 0,100;
Run Code Online (Sandbox Code Playgroud)

当group_by只有两列时,这样可以正常工作,例如

->group_by(['scr.course', 'trk.userid'])
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

php mysql mysqli group-by codeigniter

6
推荐指数
1
解决办法
9654
查看次数

Codeigniter SET查询变量

我需要使用Codeigniter查询生成器执行此查询:

SET @row_number:=0;

SELECT Id, @row_number:=@row_number+1 as Position
FROM my_table
WHERE date='2015-12-26'
Run Code Online (Sandbox Code Playgroud)

我可以通过使用"$ this-> db-> query"函数来完成它,如下所示:

    $query = 'SET @row_number:=0;';
    $this-> db-> query ($query);

    $query = 'SELECT Id, @row_number:=@row_number+1 as Position';
    $query = $query . ' FROM my_table';
    $query = $query . ' WHERE date=\'' . $data . '\''
Run Code Online (Sandbox Code Playgroud)

但是,我的问题是:如果没有硬编写查询,有没有办法做到这一点,所以写这样的东西:

        $query = 'SET @row_number:=0;';
        $this-> db-> query ($query);
        #*****It's wrong!!!!*****

        $this -> db -> select(array('Id', '@row_number:=@row_number+1 as Position'));
        $this -> db -> from('my_table');
        $this -> db -> where('date', $data);
        $query …
Run Code Online (Sandbox Code Playgroud)

php mysql codeigniter

6
推荐指数
1
解决办法
1085
查看次数

codeigniter 3.0自定义404未找到错误页面

我的问题是升级到Codeigniter 3.0后的自定义错误页面.

我曾经有一个Errors控制器处理网站的404错误页面 - 在这个控制器上我已经定制了一些页面部分,比如如果用户登录,它在导航栏上显示用户名等等(是的,在404上)错误页面).

升级到CI 3.0后,我注意到错误页面在不同的文件夹中处理,我开始以这种方式迁移; 但问题是我无法将任何变量加载到此页面,例如会话变量或甚至无法在这些页面上使用任何CI的功能.

我认为这些页面应该只是HTML页面,但有没有办法将变量加载到这些错误页面?

php codeigniter codeigniter-3

6
推荐指数
1
解决办法
2万
查看次数

Common_Model.php存在,但不声明类Common_Model

我试着检查所有的名字.它在php 5.3中工作正常,但在php 5.5中无效

遇到了未被捕获的异常

键入:RuntimeException

消息:C:\ xampp\htdocs\project\application\models/Common_Model.php存在,但未声明类Common_Model

文件名:C:\ xampp\htdocs\project\system\core\Loader.php

行号:306

回溯:

文件:C:\ xampp\htdocs\project\application\controllers\Auth.php行:7功能:__ construct

文件:C:\ xampp\htdocs\project\index.php行:292功能:require_once

在消息中,我可以看到前面出现意外的反斜杠Common_Model.php.Message: C:\xampp\htdocs\project\application\models/Common_Model.php exists, but doesn't declare class Common_Model

Common_Model.php 包含:

<? if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Common_Model extends CI_Model {


        public function __construct()
        {
                // Call the CI_Model constructor
                parent::__construct();
        }
        .
        .
        .
        .
Run Code Online (Sandbox Code Playgroud)

编辑

我刚刚将Common_Model.php更改为Common_model.php并仍然得到相同的错误

遇到了未被捕获的异常

键入:RuntimeException

消息:C:\ xampp\htdocs\project\application\models/Common_model.php存在,但未声明类Common_model

文件名:C:\ xampp\htdocs\project\system\core\Loader.php

行号:306

回溯:

文件:C:\ xampp\htdocs\project\application\controllers\Auth.php行:7功能:__ construct

文件:C:\ xampp\htdocs\project\index.php行:292功能:require_once

php mysql codeigniter

6
推荐指数
2
解决办法
2万
查看次数

如何在编辑方法中停止更新codeigniter中的密码?

当我编辑用户并保存它时,它会在数据库中保存空白.它保存所有其他字段,但是对于密码我每次编辑用户时都必须手动添加密码.

这是我的编辑方法::

if ($id) 
        {
            $this->data['user'] = $this->user_m->get_emp($id);

            count($this->data['user']) || $this->data['errors'][] = 'User could not be found';

            $rules = $this->user_m->rules_admin;
            $id || $rules['password']['rules'] .= '|required';
            $this->form_validation->set_rules($rules);

                    // Process the form
            if ($this->form_validation->run() == TRUE) 
            {

                $data = $this->user_m->array_from_post(array('emp_id','name','last_name','email','password','phone','gender','designation','user_type','blood_group','date_birth','status','address'));


                $data['password'] = $this->user_m->hash($data['password']);

                $id = $this->session->userdata('id');


                $this->user_m->save($data, $id);

                redirect('admin/user/index');
            }

        }

        // Load the view
        $this->data['subview'] = 'employee/profile/edit';
        $this->load->view('employee/_layout_main', $this->data);
Run Code Online (Sandbox Code Playgroud)

这是我的HASH方法:

public function hash ($string)
{
    return hash('sha512', $string . config_item('encryption_key'));
}
Run Code Online (Sandbox Code Playgroud)

现在我想要当我编辑用户并且我不更改他的密码我不希望密码更新为空白而是保持最后插入的密码.

但我的代码生成此查询:

UPDATE `users` SET `emp_id` = '21', `name` = …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

6
推荐指数
1
解决办法
1115
查看次数