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 动态地发出请求。如果您只是希望名称的值出现在该函数中,那么错误将是因为您没有引号(并且它是一个字符串)

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

    //values for task selection box has been populated here

}
于 2012-04-16T03:55:37.573 回答
1

也许你会发现这很有用。为此,您需要 AJAX。jQuery 对我来说是最简单的方法,但如果你想通过 php 使用 ajax,请尝试http://www.xajaxproject.org/

我的一个朋友一直在使用它,对他来说效果很好。我更喜欢 js 和 jquery

于 2012-04-16T04:04:58.053 回答
-1

如果您不介意学习一门新语言,您可以使用haxe。它是一种跨平台语言。您可以使用 haxe 为 js 和 php 开发,并使用 haxe 本身(haxe remoting)将它们链接在一起。

于 2012-04-16T05:13:40.097 回答