2011-09-15 7 views
0

私はDavid Walsh's calendar機能を使用してWordPressテーマでイベントカレンダーを作成しています。私はAJAXを使って数ヶ月間を移動したいと思っていますが、よく知られておらず、月と年の変数をポストして取得することに問題があります。私はこれを参照していますAJAX video tutorial。ページテンプレートの上部にjQuery AJAXでPHPカレンダー月間を移動

、私はこの機能を持っている:calendar.phpで

function swapContent(month,year) { 
     jQuery("#calendar").html("<img src='images/ajax-loader.gif'>").show(); 
     var url="calendar.php"; 
     jQuery.post(url, {contentVar: month, year}, function(data){ 
      jQuery("#calendar").html(data).show(); 
     }); 
    } 

$month = (int) ($_GET['month'] ? $_GET['month'] : date('m')); 
    $year = (int) ($_GET['year'] ? $_GET['year'] : date('Y')); 

    $contentVar = $_POST['month']['year']; 

をそして、私の次/前の月のコントロールは次のようになります。

$previous_month_link = '<a href="?month='.($month != 1 ? $month - 1 : 12).'&year='.($month != 1 ? $year : $year - 1).'" class="control" onClick="return false" onmousedown="javascript: swapContent("month", "year")">Previous Month</a>';

ここのすべてのcalendar.phpファイル:http://pastebin.com/R9zpA3yM

ご協力いただきありがとうございます。

答えて

1

月と年を正しく設定しているようには見えません。文字列として "月"と "年"を渡してから、PHPスクリプトに渡すために適切なパラメータ名として設定しません。これを試してみてください:

function swapContent(monthVal,yearVal) { 
    jQuery("#calendar").html("<img src='images/ajax-loader.gif'>").show(); 
    var url="calendar.php"; 
    jQuery.post(url, {month: monthVal, year: yearVal}, function(data){ 
     jQuery("#calendar").html(data).show(); 
    }); 
    return false; 
} 

次に、あなたのPHPで:

$monthVal = ($month != 1 ? $month - 1 : 12); 
$yearVal = ($month != 1 ? $year : $year - 1); 

$previous_month_link = '<a href="?month='.$monthVal.'&year='.$yearVal .'" class="control" onClick="swapContent("'.$monthVal.'","'.$yearVal.'");">Previous Month</a>'; 

よりもむしろonmousedownを使用し、私はちょうどちょうど私の関数の最後で、それはfalseを返すことを確認し、onclickに機能を持っているでしょう含まれています。

私は、月、年とcontentVarがすべてのPHPスクリプトで使用されているかわからないので、次は前提ですが、あなただけの線に沿って何かを必要とするように見える:

$month = (int) ($_POST['month'] ? $_POST['month'] 
           : ($_GET['month'] ? $_GET['month'] 
                : date('m'))); 

$year= (int) ($_POST['year'] ? $_POST['year'] 
           : ($_GET['year'] ? $_GET['year'] 
                : date('Y'))); 

それに応じてこれらの変数を使用してデータを取得しますか?

+0

ありがとうございました!まだそれは動作するように得ていない。ここに私のcalendar.phpファイル:http://pastebin.com/R9zpA3yMがあります。私はコントロールが '

'と ''タグ(行148)のページにエコーされていることに気付きました。また、前と次の月のナビゲーションについては、 'prevMonthVal'と' nextMonthVal'の変数が必要でしょうか?再度、感謝します。 – notlaura

+0

ああ、「」については心配はいりません。 'Uncaught SyntaxError:予期せぬトークン:: 8888/onlyinpgh/calendar /?month = 8&year = 2011:11'というコンソールでもこの​​エラーが発生します。ありがとう。 – notlaura

+0

あなたのリンクは、あなたが記述したように 'prevMonthVal'と' nextMonthVal'を参照する必要があるでしょう。あなたのjavascriptのエラーについては、それはそれが期待されていないと述べている:。後で引用された行を見ると、おそらくURLの不正な文字である末尾の2011:11が:%3Aとしてエンコードされている必要があります – Kasaku

関連する問題