我正在使用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';
}
有什么想法吗?
提前致谢
答案 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
}
}