【问题标题】:Only clear the form fields when post data submit successfully in php and jquery [duplicate]只有在php和jquery中成功提交数据后才清除表单字段[重复]
【发布时间】:2020-07-25 20:30:30
【问题描述】:

只有当我收到成功的数据提交回调时,我才会尝试清除表单文件。为此,我使用echo "Your application submit successfully!"; 的PHP 并将此消息字符串传递回Jquery,Jquery 将其显示为#response。但不知何故,它不起作用。 jquery 中的 if 条件无法检测到 Your application submit successfully! 有什么我想念的吗?

PHP:

if($query)
{

     echo "Your application submit successfully!";

}
else
{

 echo "<div class='alert alert-danger'>
        <b><i class='fas fa-exclamation-triangle'></i> Something Went Wrong. Your data is not inserted!</b>
        </div>";
}

jquery:

success: function (data) {

 if(data != null && data == "Your application submit successfully!"){ 
     $('#enroll_form').trigger("reset"); //reset fields
         } else { 

              $('#response').fadeIn().html(data); //this line render html+text 
                        setTimeout(function(){  
                             $('#response').fadeOut("slow");  
                        }, 7000);


         }

【问题讨论】:

  • 请看骗子。当您决定更改文本时,不要依赖错误消息字符串测试。而是发送一个带有定义的 data.success 或 data.error 内容的 JSON 响应

标签: javascript php jquery


【解决方案1】:

我不会检查整个文本,而是只检查那句话的一部分:

if (data != null && data.toLowerCase().includes("successfully") {

否则你更有可能打错字,你的代码更有可能失败。

并考虑始终显示响应,而不是在 else 中:

if (data != null && data.toLowerCase().includes("successfully") {
    $('#enroll_form').trigger("reset");
}
$('#response').fadeIn().html(data); 
setTimeout(function() {
    $('#response').fadeOut("slow");  
}, 6000);

【讨论】:

  • 完美答案。是的,我猜问题是这些块之间的空白:p
猜你喜欢
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 2016-05-19
相关资源
最近更新 更多