Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 ajax在使用链接提交表单时失败_Php_Forms_Jquery - Fatal编程技术网

Php jQuery ajax在使用链接提交表单时失败

Php jQuery ajax在使用链接提交表单时失败,php,forms,jquery,Php,Forms,Jquery,在这个序列中,我在表单中得到的内容现在正在更新数据库。但是,当我单击此链接时 <a onclick="doUpdate()" href="#" id="commit-changes" class="uibutton submit_form">Gravar</a> 我希望获得成功回调,以便在保存数据时向用户显示一条好消息 然而,如果我只是这样做 <a href="#" id="commit-changes" class="uibutton submit_form"

在这个序列中,我在表单中得到的内容现在正在更新数据库。但是,当我单击此链接时

<a onclick="doUpdate()" href="#" id="commit-changes" class="uibutton submit_form">Gravar</a>
我希望获得成功回调,以便在保存数据时向用户显示一条好消息

然而,如果我只是这样做

 <a href="#" id="commit-changes" class="uibutton submit_form">Gravar</a>
 <script>
 $(function(){
 $('#commit-changes').click(function(e){
              e.preventDefault();
              $.ajax({
                type: "POST",
                data: $("#validation").serialize(),
                cache: false,
                url:"modules/user/updateuser.php",
                success : function(data){
                    $("#response-update").html(data);
                },
                error:  function(data){
                    $("#response-update").html("Erro na submissão");
                }                
           });
          });
 });
 </script>

$(函数(){
$(“#提交更改”)。单击(函数(e){
e、 预防默认值();
$.ajax({
类型:“POST”,
数据:$(“#验证”).serialize(),
cache:false,
url:“modules/user/updateuser.php”,
成功:功能(数据){
$(“#响应更新”).html(数据);
},
错误:函数(数据){
$(“#响应更新”).html(“Erro na submissão”);
}                
});
});
});
“提交”根本不起作用

我怎样才能解决这个问题?这部分已经用了好几天了!:(

编辑表单的HTML(这也是在页面请求中加载的响应)

$response.='
实用护墙板
诺梅因塞拉奥修诺姆酒店
';
$response.='
EmailInsira o seu电子邮件
';
$response.='
许可证
“.$role。”
实用动植物
“.$activo”
开/关
林帕尔·福穆拉里奥

您是否已将jQuery代码放入
文档中。准备好处理程序了吗

jQuery(function ($) {
    // put jQuery here
});

第一个示例在没有
document.ready
(但没有太多意义,因为您无论如何都在使用jQuery)。第二个示例不起作用。

为了按预期运行doUpdate()函数,请尝试以下操作

将锚定标记onclick属性修改为

<a onclick="return doUpdate()" href="#" id="commit-changes" class="uibutton submit_form">Gravar</a>

jquery ajax成功/错误回调将根据是否收到POST请求而触发,它与您发布到的文件中实际发生的事情无关。奇怪的是,您会得到错误回调并更新数据库,但您可以尝试让您发布的php文件给出响应并然后根据该响应运行成功/错误

在php文件中,可以有如下内容:

$testQuery = "QUERY STRING HERE";
if(!mysql_query($testQuery))
{
    echo "error";
    exit;
}
else
{
    echo "sucess";
    exit;
}
然后在doUpdate函数中,您可以基于html运行成功回调和输出

    function doUpdate()
{
              e.preventDefault();
              $.ajax({
                type: "POST",
                data: $("#validation").serialize(),
                cache: false,
                url:"modules/user/updateuser.php",
                success : function(data){
                   if(data == "success")
                   {
                       $("#response-update").html(data);
                   }
                   else
                   {
                       $("#response-update").html("Erro na submissão");
                   }                    
                }            
           });
          }

你也可以使用“complete”回调,即使没有收到帖子,它也会触发,它不会告诉你除了函数已经运行之外的任何事情,尽管我有一个解决方案。不是最漂亮的,因为我想要一个纯jQuery解决方案,但是,它工作得很好

只是需要改变一下

<a onclick="doUpdate()" href="#" id="commit-changes" class="uibutton submit_form">Gravar</a>


现在它与success回调函数一起工作


谢谢你在这方面提供的帮助。

是的,我做了,但也不走运!结果是一样的。它不提交表单。你可以检查
error
变量中的内容。在
error
回调中设置断点,然后检查
error.responseText
(以及其他属性),您可能会获得更多有关阻止事件发生的信息post@MilkyWayJoe~z~我的印象是,AJAX调用一开始根本没有启动。至少,这是我从问题中得出的结论。如果以纯jQuery方式进行调用,它不会启动。如果调用onclick并将其包装到该函数中,它会提交,因此,AJAX调用正在工作,b但同时,它不是!:你的
标记是否与代码中的标记类似?我认为你必须指定
type='text/javascript'
…你是否希望对象为json?如果是,那么尝试将
contentType:'application/json'
添加到ajax调用中否,我希望HTML作为响应。你是否尝试更改
url
'/modules/user/updateuser.php'
?这没有什么不同。它也会触发错误回调如果它触发
错误
回调,你应该能够检查
错误中的内容。responseText
我已经有了这样的php。不过我正在使用PDO。
试试{$user->updateuser($name、$email、$permissions、$active、$id_user);$response=“SUCESSO”}catch(异常$e){$response=“ERRO”。$e->getMessage();}echo$response;
$testQuery = "QUERY STRING HERE";
if(!mysql_query($testQuery))
{
    echo "error";
    exit;
}
else
{
    echo "sucess";
    exit;
}
    function doUpdate()
{
              e.preventDefault();
              $.ajax({
                type: "POST",
                data: $("#validation").serialize(),
                cache: false,
                url:"modules/user/updateuser.php",
                success : function(data){
                   if(data == "success")
                   {
                       $("#response-update").html(data);
                   }
                   else
                   {
                       $("#response-update").html("Erro na submissão");
                   }                    
                }            
           });
          }
<a onclick="doUpdate()" href="#" id="commit-changes" class="uibutton submit_form">Gravar</a>
<input onclick="doUpdate()" href="#" id="commit-changes" class="uibutton submit_form" value="Gravar" />