使用ajax url来调用函数

时间:2013-11-08 21:50:39

标签: javascript php jquery ajax

希望我能正确地问这个因为我知道我想要它做什么,但似乎无法从搜索中找到任何答案。

我有一个func.php页面,其中包含我的所有功能,我希望ajax使用该页面中的一个功能。

func.php

function toptable()
{ 
  echo"something happens in here";
}

的index.php

<?php include 'func.php'; ?>
<script type="text/javascript">
function check_username() {
  uname=document.getElementById("username").value;
  var params = "user_id="+uname;
  var url = "topoftable()";
  $.ajax({
      type: 'POST',
      url: url,
      dataType: 'html',
      data: params,
      beforeSend: function() {
        document.getElementById("right").innerHTML= 'checking'  ;
      },
      complete: function() {

      },
      success: function(html) {
        document.getElementById("right").innerHTML= html ;
      }
  });

}

</script>

有意义吗?

3 个答案:

答案 0 :(得分:7)

这不是那样的。

您的AJAX请求应如下所示:

$(document).ready(function() {

    //some even that will run ajax request - for example click on a button

    var uname = $('#username').val();
    $.ajax({
        type: 'POST',
        url: 'func.php', //this should be url to your PHP file
        dataType: 'html',
        data: {func: 'toptable', user_id: uname},
        beforeSend: function() {
            $('#right').html('checking');
        },
        complete: function() {},
        success: function(html) {
            $('#right').html(html);
        }
    });

});

您的func.php

function toptable()
{
  echo 'something happens in here';
}

//here you can do some "routing"
$func = $_POST['func']; //remember to escape it

switch ($func) {
    case 'toptable':
        toptable();
        break;
    default:
        //function not found, error or something
        break;
}

同时检查我是否将document.getElementById更改为jQuery选择器$('#...')

答案 1 :(得分:0)

PHP是服务器端,JS是客户端。 您需要在ajax请求中调用PHP脚本,而不是函数。

这样的东西
[...]
 var url = "func.php";
 $.ajax({
       type: 'POST',
       url: url,
[...]

func.php

<?php
function toptable()
{ 
  echo "something happens in here";
}
toptable();
?>

在这种情况下,ajax请求的成功处理程序中的html参数将等于"something happens in here"

答案 2 :(得分:0)

有意义吗? - 没有。您不能将PHP(服务器端技术)与Javascript(客户端)混合使用。您可以使用AJAX来请求服务器为您执行某些功能,但不能将函数名称用作URL。您应该创建一个PHP页面来接受您的AJAX请求,执行该函数并返回结果,并在您的AJAX请求中使用该页面的URL