使用ajax调用PHP函数不起作用

时间:2012-03-29 09:40:27

标签: php ajax jquery

我正在使用ajax调用调用php函数,但它无效。当我点击一行中的任何一列时,我有一个表格,它可以使用其值进行编辑,但是当我编辑该值并单击另一列或输入更改的值时,不再显示。实际上我正在做一个ajax调用,我更改了表中列的数据,但它没有调用那个php函数。

我的脚本如下

<script type="text/javascript" >
$(document).ready(function()
{
    $(".edit_tr").click(function()
    {
        var ID=$(this).attr('id');
        $("#span_"+ID).hide();
        $("#input_"+ID).show();
    }).change(function()
    {
        var ID=$(this).attr('id');
        var input=$("#input_"+ID).val();
        var dataString = 'id='+ ID +'&data='+input;
        $("#span_"+ID).html('<img src="load.gif" />'); // Loading image

        if(input.length>0)
        {

            $.ajax({
                type: "POST",
                url: "worker_app::edit_ajax()",
                data: dataString,
                cache: false,
                success: function(html)
                {
                    $("#span_"+ID).html(span);
                }
            });
        }
        else
        {
            alert('Enter something.');
        }

    });

    // Edit input box click action
    $(".editbox").mouseup(function()
    {
        return false
    });

    // Outside click action
    $(document).mouseup(function()
    {
        $(".editbox").hide();
        $(".text").show();
    });

});

HTML表格如下所示

<tbody>
  <tr id="{IDWORKERS}" class="edit_tr">
    <td class="edit_td">
      <span id="span_{IDWORKERS}" class="text">{FIRM}</span>
      <input type="text" value="{FIRM}" class="editbox" id="input_{IDWORKERS}" />
    </td> 
  </tr>
</tbody>

php函数位于名为wroker_app.php

的文件中的apps文件夹中
public function edit_ajax(){
    ///echo "<pre>";
    ///print_r($_POST);
    //echo "</pre>";
   // sql to update the database goes here
    echo 'I am here';
}

有什么想法吗?

提前致谢

3 个答案:

答案 0 :(得分:2)

您无法仅使用请求调用特定功能。你需要告诉你的脚本应该执行edit_ajax。

因此,将您的网址更改为worker_app.php,使用(例如)get变量监听请求,例如?[function]。

if (isset($_GET['edit_ajax']) && function_exists($_GET['edit_ajax']))
     edit_ajax();

答案 1 :(得分:1)

你不能像这样调用php函数。你只能调用一个php文件,在那里你可以决定应该执行哪个函数。 一个简单的例子:

$.ajax({
 type: "POST",
 url: "/apps/worker_app.php",
 data: dataString,
 cache: false,
 success: function(html) {
   $("#span_"+ID).html(span);
 }
});

在你的apps / worker_app.php中:

<?php 

function edit_ajax(){
  echo 'I am here';
}

// You can put some logic before this line to decide which function to call based on the request
edit_ajax();

答案 2 :(得分:0)

url:“worker_app :: edit_ajax.php”
这个网址在哪里引用。

检查此参考 jquery .ajax

如果您想调用函数,请尝试将任何特定的帖子字段发布到该文件中 在下面的文件中使用后

 if($_POST['field']!="") { 
      requredfunction () {
           // your code run here
       } 
}