次の jquery コードは、ローカル サーバーでは正常に動作しますが、リモート サーバーでは動作しません。参考までに、リモート サーバーは jquery を認識しています。私はそれをMy Stackoverflow Qで動作させました
Merry Flowers 入会ページ で問題のページを確認してください。電子メール ID (保護者情報) としてバナナ8@gmail.com を入力してタブ キーを押すと、後続のすべてのフォーム要素が自動的に入力されます。しかし、ここではそうしていません。
以下は、/students/get_parent_info の chrome の開発者ツールからのネットワーク ヘッダーです。
Request URL:http://www.merryflowers.com/students/get_parent_info
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:52
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:CAKEPHP=b0103aa50047806a7063301569298541
Host:www.merryflowers.com
Origin:http://www.merryflowers.com
Referer:http://www.merryflowers.com/students/add
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19
X-Requested-With:XMLHttpRequest
Form Dataview URL encoded
data[MerryParent][email]:banana8@gmail.com
Response Headersview source
Connection:Keep-Alive
Content-Type:text/html; charset=UTF-8
Date:Fri, 20 Apr 2012 18:56:03 GMT
Keep-Alive:timeout=5, max=100
P3P:CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Server:Apache
Transfer-Encoding:chunked
X-Powered-By:PHP/5.2.17
ネットワークの応答とプレビュー:
****************************************
参考までに、banana8@gmail.com の既存のレコードがあることは確認済みです。
lazerblade の回答を読んだ後、www および public_html フォルダーで index.php および test.php を確認しました。リモート サーバーのルートは /home/aquinto1 です。私はずっと前にこれらのファイルに変更を加えました。ここでは何も変更していません。
以下は私のコードです:
index.php
if (!defined('ROOT')) {
define('ROOT', DS.'home'.DS.'aquinto1');
//define('ROOT', dirname(dirname(dirname(__FILE__))));
}
/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
define('APP_DIR','app');
//define('APP_DIR', basename(dirname(dirname(__FILE__))));
}
/**
* The absolute path to the "cake" directory, WITHOUT a trailing DS.
*
*/
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
//define('CAKE_CORE_INCLUDE_PATH', ROOT);
define('CAKE_CORE_INCLUDE_PATH', DS.'home'.DS.'aquinto1');
}
test.php
if (!defined('ROOT')) {
define('ROOT', DS.'home'.DS.'aquinto1');
//define('ROOT', dirname(dirname(dirname(__FILE__))));
}
/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
define('APP_DIR','app');
//define('APP_DIR', basename(dirname(dirname(__FILE__))));
}
/**
* The absolute path to the "cake" directory, WITHOUT a trailing DS.
*
*/
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
//define('CAKE_CORE_INCLUDE_PATH', ROOT);
define('CAKE_CORE_INCLUDE_PATH', DS.'home'.DS.'aquinto1');
}
<script type="text/javascript">
//var j=jQuery.noConflict();
$(document).ready(function(){
$("#MerryParentEmail").change(function(){
//txt=$("#MerryParentEmail").val();
email_id=$("#MerryParentEmail").serialize();
$.post("/students/get_parent_info",email_id,function(result_str){
result_array=result_str.split('*****');
$("#MerryParentInitial").val(result_array[0]);
$("#MerryParentName").val(result_array[1]);
$("#MerryParentLandline").val(result_array[2]);
$("#MerryParentMobile").val(result_array[3]);
$("#MerryParentAddress").val(result_array[4]);
$("#MerryParentStateId").val(result_array[5]);
state=result_array[5];
txt_str="state_id="+state;
$.get("/students/getcities",txt_str,function(result){
$("#MerryParentCityId").html(result).show();
$("#MerryParentCityId").val(result_array[6]);
});
$("#MerryParentPostalCode").val(result_array[7]);
});
});
$("#MerryParentStateId").change(function(){
state=$(this).val();
txt_str="state_id="+state;
$.get("/students/getcities",txt_str,function(result){
$("#MerryParentCityId").html(result).show();
});
});
});
</script>
students_controller の get_parent_info 関数と getcities 関数:
function get_parent_info(){
//$this->layout=false;
if (!empty($this->data)){
$merryparent_info=$this->Student->MerryParent->getMerryParents($this->data['MerryParent']['email']);
print_r($merryparent_info);
echo $merryparent_info['MerryParent']['initial'].'*****';
echo $merryparent_info['MerryParent']['name'].'*****';
echo $merryparent_info['MerryParent']['landline'].'*****';
echo $merryparent_info['MerryParent']['mobile'].'*****';
echo $merryparent_info['MerryParent']['address'].'*****';
echo $merryparent_info['MerryParent']['state_id'].'*****';
echo $merryparent_info['MerryParent']['city_id'].'*****';
echo $merryparent_info['MerryParent']['postal_code'].'*****';
}
}
function getcities(){
$this->data['MerryParent']['state_id']=$_GET['state_id'];
if (!empty($this->data['MerryParent']['state_id'])){
$cities = $this->Student->MerryParent->City->getCities($this->data['MerryParent']['state_id']);
//print_r($cities);
foreach ($cities as $k=>$v){
echo '<option value="'.$k.'">'.$v.'</option>';
}
/* foreach($cities as $optionValue){
echo '<option>' . $optionValue . '</option>';
}*/
}else{
$this->Session->setFlash('You didn\'t select a state!');
}
}