【问题标题】:Call 2+ functions with Javascript and AJAX使用 Javascript 和 AJAX 调用 2+ 个函数
【发布时间】:2014-05-12 18:28:02
【问题描述】:

我有一个 page.php 和一个 func.php。我知道我可以做的请求是使用 AJAX,但我不知道该怎么做。我在这里搜索,我找到了this,但我不明白它是如何工作的。

这是我的文件:

page.php

<html>
<head>
<script src="func.php" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">

        function hello(){
             $.ajax({ 
         url: 'func.php',
         data: {action: 'hello'},
         type: 'post',
         success: function(output) {
              alert(output);
        }
           });
        }

        function bye(){
              $.ajax({ 
              url: 'func.php',
              data: {action: 'bye'},
              type: 'post',
              success: function(output) {
                alert(output);
            }
            });
            }
</script>
</head>
<body>

<form action method="post" name="form" id="form" action="javascript:hello();"  >
<button type="input">Hello</button>
</form>

<form action method="post" name="form" id="form" action="javascript:bye();"  >
<button type="input">Bye</button>
</form>
</body>
</html>

func.php

<?
if(isset($_POST['action']) && !empty($_POST['action'])) {

$action = $_POST['action'];
    switch($action) {
        case 'hello' : hello();break;
        case 'bye' : bye();break;
    }

function hello(){
    echo "Hello";
}

function bye(){
    echo "bye";
}
}
?>

代码非常简单,我只希望当用户单击“hello”或“bye”按钮时,javascript 调用该函数并打印结果。这是我的真实代码示例,我知道如果我想打印“hello/bye”,我不需要 ajax 或其他文件。

非常感谢!

【问题讨论】:

  • 您面临的问题是什么?代码有效吗?
  • 不,代码不起作用。不打印,只重新打印页面
  • &lt;form action="javascript:bye();" 无效,你应该做&lt;button onclick="javascript:bye();"

标签: javascript php jquery ajax


【解决方案1】:

您需要为按钮设置点击处理程序。给每个按钮一个唯一的 ID 并设置舔侦听器,如下例所示。

jQuery:

$(document).ready(function() {
    $("#hello").click(hello);
    $("#bye").click(bye);        
});

HTML:

<button type="button" id="hello">Hello</button>
<button type="button" id="bye">Bye</button>

DEMO

【讨论】:

  • 这解决了我调用函数的问题。但我需要从 page.php 调用 func.php 上的函数。 alert 的内容必须来自 func.php,而不是来自同一个文件。谢谢! :)
  • 这就是您的代码所做的 :) 您看不到输出,因为您在 page.php 上。
  • 我知道,但是原代码有Selects、inserts和更多的php代码,因此需要调用func.php上的函数。谢谢!
  • @GRQuest 但这就是您的代码正在做的事情!您正在调用 func.php 中的函数
  • 如果你想让 func.php 返回一些东西,请查找php.net/manual/en/function.json-encode.php
【解决方案2】:

你可以这样做:

jquery:

$(document).ready(function() {
    $('#bye').bind('click', bye);
    $('#hello').bind('click', hello);
});

HTML:

<form action method="post" name="form" id="form"  >
  <a id="hello">hello</a>
  <a id="bye">bye</a>
</form>

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多