-1

私には機能があります

function getCalendarData(){
   ob_start();
   echo "<script type='text/javascript' src='http://splocal/courses/calendar.js'></script>";
   $calendarAry = ob_get_contents();
   print_r($calendarAry);
   return $calendarAry;
 }

ここでは、js 呼び出しの戻り値を変数に代入しようとしています。しかし、それは機能していません。

それを行う正しい方法は何ですか?

calender.js file 


    function returnCalenderArray(data){
        console.log(data);
        document.write(data);
        return data;

    }


    $.ajax({
         type: "GET",
         url: "http://localhost:8080/privateTraining/getTrainingsJson",
         data: { ListID: '1'},
         dataType: "jsonp",

         success: function(data) {
         alert('Hi'+data);
         returnCalenderArray(data);
      }
});  
4

2 に答える 2

0

技術的には、少なくとも同じページでは、JavaScript から PHP を呼び出すことはできません。PHP はサーバー側のみの言語であり、JS はクライアント側です。JS 関数から PHP スクリプトを呼び出す唯一の方法は、バックグラウンドで (ブラウザには表示されない) 新しいページを開き、この方法で実行することです。これはAJAXと呼ばれ、この技術に興味を持つことをお勧めします。

AJAX を非常に簡単に使用するには、 jQueryなどの JS フレームワークを使用します。

于 2013-09-16T06:55:08.993 に答える
-1

PHPでjavascriptを構築してみることができます。これにより、静的ではなく実行可能なコンテンツをロードできます。これを行うには、最初に PHP をスクリプト要素にロードするための JavaScript 関数が必要です。何かのようなもの :-

function loadscript(src){
       var myscript = document.createElement('script');
       myscript.src = src;
       document.getElementByTagName('head')[0].appendChild(src);
}

次に、構築されたJSコードにphp変数を書き込み、ブラウザで関数を呼び出してphpをロードできます。PHPはこのようなものになります。

サーバー上の myphpcode.php

<?php
$sessionid = $_SESSION['user_id'];
?>
mydiv.innerHTML = 'User ID ' + <?php echo $sessionid; ?>;   

HTMLページでのjs呼び出し

loadscript('myphpcode.php');

同じ方法を使用して、JavaScript で有効なクエリ文字列を作成し、loadscript 呼び出しに追加して、PHP 経由でサーバーにデータを送信します。

var a = 'some data';
var b = 'some more data';
var urlstring  = 'myphpcode.php?a=' + a + '&b=' + b;
loadscript(urlstring);

次に、たとえば myphpcode.php に関数を記述して、javascript 変数をデータベースに保存できます。

<?php
include mydbconnection.php  // some database connection code
if ((isset $_GET["a"]) && (isset $_GET["b"])) { //check the url query string has data 
   $a = $_GET["a"];
   $b = $_GET["b"];
   $query = "INSERT into mydatabase.mytable (columnA, columnB)
             VALUES ('" . $a . "','" . $b . "');";
   if ($mysqli->prepare($query)){
       $mysqli->execute();
   }
}
?>
于 2013-09-16T07:12:59.860 に答える