我有一个就地编辑(jEditable)下拉列表的类别。其中一个选项是“新类别”。
如果用户选择“新类别”并使用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 :(得分:2)
你不能使用服务器端代码(如php)在客户端触发某些东西,但是jQuery有一个成功方法,在ajax调用完成后执行。
$.ajax({
url:"someurl.php",
success: function()
{
$('yourSelector').yourfunction("");
}
});
此外,您可以将表单数据传递给php页面并返回html / javascript或jason,然后将其注入页面或解析/运行代码。
继承人一些有用的链接
AJAX文档:http://api.jquery.com/jQuery.ajax/
带有自动填充文本字段的w3cschool示例:http://www.w3schools.com/php/php_ajax_php.asp
答案 1 :(得分:0)
How to call a JavaScript function from PHP?
我建议阅读这个问题的答案,然后返回字符串(或回显出来)
<script type="text/javascript">$( "#new-cat-input" ).dialog( "open" );</script>
在适当的地方
实际上,我收回了我的答案,因为这会导致不知道脚本何时执行或者必须评估此脚本来执行它。
坚持发送ajax请求并按照其他人的建议处理响应。
也许你需要区分返回整个页面的调用和只返回一些数据或页面片段的调用(可以附加到div)