1

重複の可能性:
javascript から php 関数を呼び出す

JS関数でphp関数を呼び出す方法について誰か助けてもらえますか?

イベントは次のとおりです。

プロジェクト選択ボックスで選択すると、2 つの選択ボックス (プロジェクトとタスクなど) があり、タスク選択ボックスに入力されます。タスク選択ボックスに入力された値は、PHP DAO にあります。

ここに私のjavascriptがありますが、うまくいきませんが、私の考えはそのようなものです

function getProjTask()
{
    var taskList = <?php $projTask->getProjectTask("ProjectName");  ?>

    //values for task selection box has been populated here

}
4

4 に答える 4

3

これが機能するには、 AJAXを使用する必要があります。これは、単純な古い JavaScript またはお気に入りのライブラリを使用して実行できます。ライブラリを使用すると、はるかに簡単になります。私自身もYUIをよく使っています。

あなたがする必要があることは非常に簡単です:

  1. 変更については、プロジェクト選択ボックスを聞いてください。
  2. 変更が発生したら、AJAX を使用してリクエストを PHP エンドポイントに送信します。
  3. 次に、エンドポイントは、タスク選択ボックスの値を含む JSON 応答を返します。
  4. JavaScript を使用して JSON 応答をデコードし<option>、タスク選択ボックスの要素を作成します。

簡単な例:

PHP側:

<?php

$list = array('list' => array('task1' => 1, 'task2' => 2));

header('Content-Type: application/json; charset=utf-8');
echo json_encode($list);

exit();

JS 側 (私は YUI を使用しています。これは AJAX 専用です。選択ボックスの変更をリッスンするコードを記述する必要があります):

<script>
// Create a YUI instance using io-base module.
YUI().use("io-base", function(Y) {
    var uri = "get.php?foo=bar";

    // Define a function to handle the response data.
    function complete(id, o) {
        var data = Y.JSON.parse(o.responseText);

        //Parse the JSON, loop and insert the options here.
    };

    // Subscribe to event "io:complete"
    Y.on('io:complete', complete);

    // Make the request
    Y.io('http://mysite.com/myendpoint.php');
});
<script>
于 2012-04-16T03:53:58.043 に答える
1

多分あなたはこれが役に立つと思うかもしれません。これには AJAX が必要です。jQuery は私にとって最も簡単な方法ですが、php を使用して ajax を使用する場合はhttp://www.xajaxproject.org/を試してください。

私の友人はいつもそれを使用しており、彼にとってはうまくいきます. 私はjsとjqueryを好む

于 2012-04-16T04:04:58.053 に答える
1

ajax を使用して動的にリクエストを作成します。名前の値をその関数に入れたいだけの場合、エラーは引用符がないためです(そしてそれは文字列です)

function getProjTask()
{
    var taskList = '<?php $projTask->getProjectTask("ProjectName");  ?>';

    //values for task selection box has been populated here

}
于 2012-04-16T03:55:37.573 に答える
-1

新しい言語を学んでもかまわない場合は、haxeを使用できます。そのクロスプラットフォーム言語。haxeを使用してjsとphp用に開発し、haxe自体を使用してそれらをリンクすることができます(haxe remoting)。

于 2012-04-16T05:13:40.097 に答える