-4

次のように JavaScript で PHP 関数を使用しようとしています。

PHP コード:

function checkevents($date){
    $ev = new CalendarModelEventss();
    $wh = "`event_date` = '".$date."'";
    $all = $ev->getAllEvents('event_date', $wh);
    if($all == $date){
        //echo 'event is available'.$all;   
        return true;
    } else {
        return false;
        //echo 'event is NOT available' .'--'. $all;
    }
}

および JavaScript コード:

var yyyy = date.getLocalFullYear(true, this.dateType);
var mm = date.getLocalMonth(true,this.dateType);
var dd = iday;
var ddddd = yyyy+'/'+mm+'/'+dd;

if(<?php checkevents( ?>ddddd<?php ) ?>){
     cell.className += " eventsss ";
}

しかし、それは機能せず、PHP エラー ( syntax error, unexpected ';', expecting ')' in ...) が発生します。

4

3 に答える 3

3

前のスピーカーが言ったように、javascript から直接 php 関数を呼び出すことは不可能です。ただし、PHP を使用して JavaScript を出力することはできます。

あなたの場合、(サーバー側で) php コードを実行するクライアント側から (javascript を使用して) ajax-request を送信し、出力を取得して if ステートメントに入れる必要があります。

javascript/AJAX についてよく知らない場合は、jQuery または別の同様のフレームワークを調べることができます。

于 2012-12-08T12:48:48.237 に答える
2

Javascript はクライアント側で解析され、PHP はサーバー側で解析されます。
これがないAJAXと無理です。

JQuery の例:

PHP:

...
    echo "true";//or something else that indicates the success
} else {
    echo "false";//or something else that indicates the failure
}
...

Javascript:

$.ajax({
  url: "URL TO YOU PHP SCRIPT",
  cache: false
}).done(function( html ) {
  if(html.match(/true/g)){
     cell.className += " eventsss ";
  }
});
于 2012-12-08T12:42:37.083 に答える
0

どちらも異なる側にあるため、javascriptを使用してphp関数を直接呼び出すことはできません。したがって、特定のパラメーターを使用してAJAX呼び出しを行い、その後、検証するパラメーターを使用してそのphpファイルから直接php関数を呼び出します。

そして、出力をエコーし​​てjavascriptに出力を送り返し、javascriptでそれを使って何でもします。

于 2012-12-08T12:58:16.063 に答える