1

これは私の最初の Codeigniter プロジェクトであり、切腹をコミットしようとしています。

状況は次のとおりです。

私は写真のギャラリーを持っています。ユーザーがそれらの 1 つにカーソルを合わせると、サイド div に AJAX によって呼び出された詳細情報が入力されます。

私はそれを機能させることができません。Dev Tools>Network>XHR でこれを取得し続けます:

Not Found

The requested URL /ajax/getMoreInfo was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

私は何を間違っていますか?誰かがいくつかの「ベスト プラクティス」を削除したい場合は、私は完全に耳を傾けます。具体的には..ここで行っているように変数としてではなく、$.post (ajax/getMoreInfo/ID) で送信された URL を介して ajax パラメーターが渡される他の例を見てきました。私は完全に間違っていますか?(それが私の404の原因だとは思いませんが)。

これは、ホバー時に呼び出される私のJS関数です

function showDataWindow(){

    var thisClass = $(this).attr('class');
    var thisIDpos = thisClass.indexOf("id-")+3;
    var thisID = thisClass.substr(thisIDpos, 3);
    /// alert(thisID) <- alerts correctly
    $.post('ajax/getMoreInfo', 
        { ID: thisID },
        function(data) {
            .. do stuff with data

/controllers に ajax.php という名前のコントローラーがあります

<?php

class Ajax extends CI_Controller {

  function __construct() {
      parent::__construct(); 
  }

  public function getMoreInfo()
 {
      $ID = $this->input->post('ID');
      $this->load->model('Artist_model','',TRUE);
      $more_info = $this->Artist_model->get_more_info($ID);
      echo json_encode($more_info);
  }
}

そして /models の私のモデル...

<?php 
class Artist_model extends CI_Model {

function __construct()
{
    parent::__construct();
}

public function get_more_info($ID)
{        
        $query = $this->db->query('SELECT * FROM `NOIRusers` WHERE `UID` = `$ID`');
        if ($query->num_rows() > 0)
        {
           foreach ($query->result() as $result)
           {

                $moreInfo['memberID'] =$result->UID;
                $moreInfo['firstName'] =$result->UFname;
                $moreInfo['lastName'] =$result->ULname;
                $moreInfo['large_image_location'] =$result->large_image_location;

                ..more of these..
           }
        }  
}

助けてくれてありがとう!

4

3 に答える 3

2

htaccessの問題だと思います。.htaccess ファイルで次のコンテンツを使用してみてください。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]
于 2012-07-06T09:07:57.103 に答える
1

これをroutes.phpに追加しましたか?

http://codeigniter.com/user_guide/general/routing.html

CIが「ajax」をどう処理するかを認識できるように、ここに追加する必要があります。

于 2012-07-06T09:04:02.330 に答える
0

ID を適切に渡すことができる場合は、次のクエリを試してください。

SELECT * FROM NOIRusers WHERE UID = '".$ID."'";

通常は codeigniter のように使用します

$this->db->select('*');
$this->db->from('NOIRusers');
$this->db->where('UID',$ID);
于 2012-07-06T10:19:06.127 に答える