Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery太快(比mysql快)_Php_Jquery_Cakephp_Post - Fatal编程技术网

Php jQuery太快(比mysql快)

Php jQuery太快(比mysql快),php,jquery,cakephp,post,Php,Jquery,Cakephp,Post,我正在开发一个cakephp应用程序,它在后台使用jquery和post方法 当cakephp在后台发送post请求时,div必须刷新(或重新生成),并且必须显示新内容 Post方法调用执行MySQL查询的其他php文件。div还调用mysql,并从数据库中选择适当的数据 问题是div在第一次mysql查询之前被刷新(或重新生成)。所以它工作正常,但是我如何告诉div“等待”一点,直到执行mysql查询 这是我的密码 $.post('/publications/deleteItem/' + va

我正在开发一个cakephp应用程序,它在后台使用jquery和post方法

当cakephp在后台发送post请求时,div必须刷新(或重新生成),并且必须显示新内容

Post方法调用执行MySQL查询的其他php文件。div还调用mysql,并从数据库中选择适当的数据

问题是div在第一次mysql查询之前被刷新(或重新生成)。所以它工作正常,但是我如何告诉div“等待”一点,直到执行mysql查询

这是我的密码

$.post('/publications/deleteItem/' + valueClicked, function(data) {
}, 'html');

$.post('/publications/getItems/' + val + '/' + val1, function(data) {
    $("#relatedNumerationPublications").empty().append(data);
}, 'html');
更新: 好的,我知道问题出在哪里了。就像下面提到的契丹·萨斯特里,尝试:

$.post('/publications/deleteItem/' + valueClicked, function() {
    $.post('/publications/getItems/' + val + '/' + val1, function(data) {
        $("#relatedNumerationPublications").empty().append(data);
    }, 'html');
}, 'html');
问题是找不到“/publications/deleteItem/”+valueClicked页面的原因响应。猜测这就是cakephp的原因(事实上,该页面存在,但cakephp返回的结果却不是这样)


是否可能以某种方式跳过错误“未找到页面”并继续使用代码?

您将
重新生成功能放在哪里


我认为如果你把它放在
onSuccess
回调函数上应该没问题。

你把
重新生成
函数放在哪里


我认为如果你把它放在
onSuccess
回调函数上应该没问题。

Ajax调用(根据定义)是异步的,所以如果你只是把下一条javascript指令放在Ajax调用之后,你总是会遇到这个问题。如前所述,使用onSuccess参数或同步ajax调用(我记得jquery提供了类似的功能)。

ajax调用(根据定义)是异步的,因此如果您只是将下一条javascript指令放在ajax调用之后,您总是会遇到这个问题。如前所述,使用onSuccess参数或同步ajax调用(我记得jquery提供了类似的功能)。

您可以在第一次SQL更改操作之后经常进行ajax轮询。只有在从PHP获得轮询的新值后,才能重新生成。在第一次SQL操作进行更改后,可以经常使用Ajax轮询。只有在从PHP返回轮询的新值后,才能执行重新生成。

只需将get items调用放入delete items函数的回调中即可。像这样的-

$.post('/publications/deleteItem/' + valueClicked, function() {
    $.post('/publications/getItems/' + val + '/' + val1, function(data) {
        $("#relatedNumerationPublications").empty().append(data);
    }, 'html');
}, 'html');

现在,您的getItems将等待deleteItems完成。(假设您没有使用异步后端技术!)

只需在delete items函数的回调中调用get items。像这样的-

$.post('/publications/deleteItem/' + valueClicked, function() {
    $.post('/publications/getItems/' + val + '/' + val1, function(data) {
        $("#relatedNumerationPublications").empty().append(data);
    }, 'html');
}, 'html');

现在,您的getItems将等待deleteItems完成。(假设您没有使用异步后端技术!)

发布您当前的代码以澄清问题:)这听起来像是您不正确地试图返回某些内容,而不是依赖回调。请参见此处:和此处:。您是否有用于返回json或直接从控制器返回的delete_ite.ctp视图。在您的帖子中,我假设您缺少该视图,因此cakePHP将显示错误。发布您当前的代码以澄清问题:)这听起来像是您不正确地试图返回某些内容,而不是依赖回调。请参见此处:和此处:。您是否有用于返回json或直接从控制器返回的delete_ite.ctp视图。在您的帖子中,我假设您缺少视图,因此cakePHP将显示错误。您可以执行同步ajax请求,但它们会锁定浏览器,因此不鼓励使用。您可以执行同步ajax请求,但它们会锁定浏览器,因此不鼓励使用。