ここでは、単純なボタン コマンドを使用して、ページを更新することなく、テキスト ファイルからのデータを表示する Web ページの単純で機能する AJAX の例を示します。
ajax_test.php
<script>
function loadXMLDoc()
{
var xmlhttp;
if(window.XMLHttpRequest) // code for IE7+, Firefox, Chrome, Opera, Safari
{
xmlhttp = new XMLHttpRequest();
}
else // code for IE6, IE5
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "ajax_info.txt", true);
xmlhttp.send();
}
</script>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
CodeIgniter を使用する場合を除いて、これをまったく同じ方法で機能させようとしています。マイページは以下のコーディングで表示されます。
pages.php
<?php
// To avoid outside users from accessing this file
if(!defined('BASEPATH')) exit('No direct script access allowed');
class Pages extends CI_Controller
{
// Default method if one has not been requested within the URL
public function view($page = "home")
{
if(!file_exists('application/views/pages/'.$page.'.php')) // If the page does not exist
{
// Whoops, we don't have a page for that!
show_404();
}
$data["main_url"] = $this->config->item("base_url")."z_my_folders/";
$data["title"] = ucfirst($page); // Capitalize the first letter
$this->load->view("templates/header", $data);
$this->load->view("pages/".$page, $data);
$this->load->view("templates/footer");
}
}
これが行うのは、「view」メソッドが呼び出されたときに Web ページを表示することだけです (たとえば、pages/view/ajax_test)。サーバーのメイン URL を文字列として保持し、画像、CSS、jQuery ライブラリなどのファイルを割り当てます。ヘッダー。
header.php
<html>
<head>
<link href="<?php echo $main_url; ?>design.css" rel="stylesheet" type="text/css">
<title>Kurtiss' Website - <?php echo $title ?></title>
<script type="text/javascript" src="<?php echo $main_url; ?>jquery/jquery-1.10.2.min.js"></script>
</head>
ajax_test.php ファイルは CodeIgniter に適切に表示されますが、ボタンを押しても何も起こりません。繰り返しますが、ファイルは CodeIgniter にない場合でも正常に動作しますが、できるようにしようとしています。
ユーザーがデータベースに接続し、複雑なログインフォーム、登録フォーム、チャットルームなどを作成している複雑な例を除いて、私はそれを調査しようとしました.「はい、これはAJAX であり、CodeIgniter で動作します。」
どうもありがとう。
以下のようにコードを編集しました。
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
else
{
alert("ERROR");
}
}
CodeIgniter でテストすると、警告メッセージが 4 回ポップアップするため、xmlhttp.readyState に関係がある可能性があります。