2011-11-01 13 views
8

私はこれがうまくいかない理由で、私の頭脳を掘り下げ、ほぼ一日中Googleを検索しています。私自身のサイトを改善するための実験として、ここではチュートリアルhttp://tutorialzine.com/2009/09/simple-ajax-website-jquery/が最も重要なajax/jqueryセクションをチェックしていました。PHPがAJAX投稿を読むようにしようとしています

基本的に、このチュートリアルのPOSTはページ番号で動作しますが、代わりにページ名を使用するように変換しようとしています。ですから、hrefから#!home(後ほどgoogle互換性を実装するためのhashbangs)が必要になり、phpはそれを "home.html"として解析し、それをコンテンツdivにロードできます。私以外の理由から、それはうまくいきません。

var datastring=url.replace('#!',''); //strip the #page part of the hash and leave only the page number 

$('#loading').css('visibility','visible'); //show the rotating gif animation 

$.ajax({ //create an ajax request to load_page.php 
    type: "POST", 
    url: "load_file.php", 
    data: datastring, //with the page number as a parameter 
    dataType: "html", //expect html to be returned 
    async: false, 
    success: function(msg){ 

     if(parseInt(msg)!=0) //if no errors 
     { 
      $('#content').html(msg); //load the returned html into pageContet 
      $('#loading').css('visibility','hidden'); //and hide the rotating gif 
     } 
    } 

}); 

全体のphpファイル:

ジャバスクリプトローダー(私は修正のみ末端部分)から

:私は私の賛成で変更しようとしているコードの関連セクションを投稿します

<?php 
$url = $_POST['datastring']; 

if(file_exists(''.$url.'.html')) 
echo file_get_contents(''.$url.'.html'); 

else echo 'There is no such page!'; 

?> 

私は自分自身で学びたいと思っていましたが、これを理解することができましたが、正直なところ私はそれを理解できません。/私が知る限り、ドメイン間の問題はありません。誰かが私が行方不明を知っている? 私は解決策を見つけたらそこに行ってコメントに投稿して、他の人が私の苦痛を避けるようにしていますが、チュートリアルのサイトより旅行になる可能性が高いので、ここで質問します。 XD

+0

? –

+1

あなた自身で学ぶのを助ける精神で、ヒント:あなたが思っていることを送信する要求ですか、あなたがあなたがPHPにあると思うものにアクセスしていますか? .ajaxドキュメントをチェックし、firebug/etcを使用してください。リクエストを確認し、PHPのリクエストパラメータ/値をデバッグしてください:) –

+0

彼らはちょうどあなたに伝えるだろうと推測します:) –

答えて

6

あなたは、キー、値のペアとしてあなたのPOSTデータを渡す必要があります。

はこれにあなたのデータを変更してみてください:

data: "datastring="+datastring 
+0

ああ、それは、年齢のためにそれを考え出したかどうかわからない。ありがとう! –

0

$_POSTdatastringキーを要求していますが、AJAXで送信することはできません。お使いのjQueryのAJAXで

は変更してみてください:

data: datastring 

へ:

data: 'datastring=' + datastring 
1

あなたはPHPファイルが探しているdatastringパラメータを設定されていません。

JSファイル:

var datastring=url.replace('#!',''); //strip the #page part of the hash and leave only the page number 

$('#loading').css('visibility','visible'); //show the rotating gif animation 

$.ajax({ //create an ajax request to load_page.php 
    type: "POST", 
    url: "load_file.php", 
    data: 'datastring='+datastring, //with the page number as a parameter 
    dataType: "html", //expect html to be returned 
    async: false, 
    success: function(msg){ 

     if(parseInt(msg)!=0) //if no errors 
     { 
      $('#content').html(msg); //load the returned html into pageContet 
      $('#loading').css('visibility','hidden'); //and hide the rotating gif 
     } 
    } 

}); 

あなたのPHPファイル:エラーメッセージは、あなたが何を取得しているされて

<?php 
$url = $_REQUEST['datastring']; 
echo $url; 

if(file_exists(''.$url.'.html')) 
echo file_get_contents(''.$url.'.html'); 

else echo 'There is no such page!'; 

?> 
関連する問題