我使用
jquery和ajax提交表单而不重新加载页面,然后根据结果(无论是成功还是错误)我在两个不同的div中打印消息.由于ajax中的成功和错误只检查客户端/服务器连接,因此当查询成功时我会回复
PHP中的一些内容,并根据我的条件决定如何处理消息. Jquery / ajax部分看起来像那样(通常我使用两个不同的div,但为了简化示例,我将使用警报):
success: function (result) { if (result == 'success') { alert("Success!"); } else { alert("There was an error."); } },
这很好用,但我想提高它的可用性.
现在的问题是:我可以在if中使用(结果==部分类似于str.match吗?例如,如果运行查询时遇到一些问题,我会在PHP echo中回显“错误:>错误描述在这里<”;我可以吗?然后以某种方式在我的if条件中使用str.match(/ ^ Error /)并回显整个消息?
解决方法
不要将字符串匹配用于此任务.使用HTTP响应代码 – 这就是他们的目的! PHP中的
http_response_code
函数专为此目的而设计:
<?PHP if ( /* error condition */ ) { http_response_code(400); // "Bad request" response code echo 'Invalid parameters'; } else { echo 'Success'; // response code is 200 (OK) by default }
然后你可以使用jQuery的done和fail回调来分别处理这两种情况:
$.ajax(url,params) .done(function(response) { alert('all good: ' + response); }) .fail(function(response) { alert('error: ' + response); })