在OL中打印JSON错误

Print JSON Errors in OL

本文关键字:JSON 错误 打印 OL      更新时间:2023-09-26

我又来了。

我有一些由创建如下的PHP生成的错误:

if (strlen($event_name) < 1){ echo $result['error'] = "<li>You must enter an event name</li>";}
if (strlen($venue_name) < 1){ echo $result['error'] = "<li>You must enter a venue name</li>";}
if (strlen($event_date) < 1){ echo $result['error'] = "<li>You must enter an event date - if not please write TBC</li>";}
if (strlen($address_l1) < 1){ echo $result['error'] = "<li>You must enter an address</li>";}
if (strlen($postcode) < 1){ echo $result['error'] = "<li>You must enter a postcode</li>";}
if (strlen($country) < 1){ echo $result['error'] = "<li>You must enter a country</li>";}

最后我得到了:

echo json_encode($result);

要将这些错误打印到我的OL,我有这样的:

$('#errorbox').html(result.error);

然而,没有任何结果……就像它没有出现一样。

编辑:这是AJAX完成后调用的函数:

}, function(result) {
        if (result.success == true) {
            $('#errorbox').html(result);
        } else if (result.success == false) {
            $('#errorbox').html("Not working dude!");
        }
    }, 'json');
    return false;
} 

您的代码将用下一个错误覆盖任何错误。为了避免这种情况,请连接消息:

$result['error'] = '';
if (strlen($event_name) < 1){ $result['error'] .= "<li>You must enter an event name</li>";}
if (strlen($venue_name) < 1){ $result['error'] .= "<li>You must enter a venue name</li>";}
if (strlen($event_date) < 1){ $result['error'] .= "<li>You must enter an event date - if not please write TBC</li>";}
if (strlen($address_l1) < 1){ $result['error'] .= "<li>You must enter an address</li>";}
if (strlen($postcode) < 1){ $result['error'] .= "<li>You must enter a postcode</li>";}
if (strlen($country) < 1){ $result['error'] .= "<li>You must enter a country</li>";}

还要确保HTML包含id为errorboxuloldiv,并且jQuery已正确加载。

您可能想要使用+=,而不是=,后者会覆盖以前的值。你还想把echo语句放在你的ifs字符串中。你的原始代码在顶部有很多漏洞;来自各种<li> s的回声的残余物。

$result['error']="";
if (strlen($event_name) < 1) { $result['error'] .= "<li>You must enter an event name</li>";}
if (strlen($venue_name) < 1) { $result['error'] .= "<li>You must enter a venue name</li>";}
if (strlen($event_date) < 1) { $result['error'] .= "<li>You must enter an event date - if not please write TBC</li>";}
if (strlen($address_l1) < 1) { $result['error'] .= "<li>You must enter an address</li>";}
if (strlen($postcode) < 1) { $result['error'] .= "<li>You must enter a postcode</li>";}
if (strlen($country) < 1) {  $result['error'] .= "<li>You must enter a country</li>";}

现在,对PHP页面的GET请求应该可以工作了。