2012-02-19 39 views
0

我有一个可编辑的(jEditable)下拉列表类别。其中一个选项是“新类别”。从PHP响应中触发jQuery函数

如果用户选择“New Category”并使用Ajax提交表单我希望PHP触发一个jQuery函数,该函数将打开一个覆盖对话框并提示用户输入。

我该如何让PHP触发jQuery功能?

PHP代码...

function update() 
{ 
    $id = $this->input->post('id'); 
    $value = $this->input->post('value'); 

    $data = array('category_id' => $value); 
    $this->db->where('id', $id); 
    $this->db->update('transactions', $data); 

    $category = new Category(); 
    $category->where(array('id' => $value)); 
    $category->get(); 

    if ($value == 0) { 
     // Trigger jQuery function 
    } else { 
     echo $category->name; 
    } 

} 

jQuery的功能我想触发(它是通过一个按钮当前触发)...

//===== UI dialog =====// 
$("#new-cat-input").dialog({ 
    autoOpen: false, 
    modal: true, 
    buttons: { 
     Ok: function() { 
      $(this).dialog("close"); 
     } 
    } 
}); 

$("#open-new-cat").click(function() { 
    $("#new-cat-input").dialog("open"); 
    return false; 
}); 
+0

您省略了执行一段代码 - 也就是JavaScript函数,使Ajax调用,而最重要的是,处理:http://api.jquery.com/jQuery.ajax/
具有自动填充文本字段w3cschool例子响应。 – 2012-02-19 01:18:02

回答

0

How to call a JavaScript function from PHP?

我建议你阅读这问题回答,然后返回字符串(或回显出)

<script type="text/javascript">$("#new-cat-input").dialog("open");</script> 

在适当的位置

其实,我收回我的答案,因为这将导致在执行脚本时或任一不知道所述的具有EVAL这个脚本来执行它。

坚持发送ajax请求并处理其他人建议的响应。

也许你需要返回整个页面,并调用只返回一些数据或页面fragements(可追加到的div)

2

不能triggure在客户端与服务器调用的东西来区分像php这样的代码,但jQuery有一个成功的方法,在ajax调用完成后执行。

$.ajax({ 
    url:"someurl.php", 
    success: function() 
    { 
    $('yourSelector').yourfunction(""); 
    } 
}); 

此外,您可以通过表单数据到PHP网页,并返回HTML/JavaScript或杰森,要么它注入到页面或解析/运行代码。
继承人一些有用的链接
AJAX文档:http://www.w3schools.com/php/php_ajax_php.asp