Php 在OL中打印JSON错误
又是我 我有一些由PHP生成的错误,如下所示:Php 在OL中打印JSON错误,php,javascript,json,list,Php,Javascript,Json,List,又是我 我有一些由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 (s
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>";}
要将这些错误打印到我的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;
}
您可能想使用
+=
,而不是=
,后者会覆盖前面的值。您还希望在if
s字符串中删除echo
语句。您的原始代码在顶部有很多粗制滥造的地方;重复各种
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>";}
$result['error']=”;
如果(strlen($event_name)<1){$result['error']。=“您必须输入事件名称 ”;}
如果(strlen($vention_name)<1){$result['error']。=“您必须输入场馆名称 ”;}
如果(strlen($event_date)<1){$result['error']。=“您必须输入事件日期,否则请写TBC ”;)
如果(strlen($address_l1)<1){$result['error'].=“您必须输入一个地址 ”;}
如果(strlen($postcode)<1){$result['error'].=“您必须输入一个邮政编码 ”;}
如果(strlen($country)<1){$result['error'].=“您必须输入一个国家 ”;}
现在,对PHP页面的GET请求应该可以工作了。您的代码正在用下一个错误覆盖任何错误。要避免这种情况,请连接消息:
$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>";}
$result['error']='';
如果(strlen($event_name)<1){$result['error']。=“您必须输入事件名称 ”;}
如果(strlen($vention_name)<1){$result['error']。=“您必须输入场馆名称 ”;}
如果(strlen($event_date)<1){$result['error']。=“您必须输入事件日期,否则请写TBC ”;)
如果(strlen($address_l1)<1){$result['error'].=“您必须输入一个地址 ”;}
如果(strlen($postcode)<1){$result['error'].=“您必须输入一个邮政编码 ”;}
如果(strlen($country)<1){$result['error'].=“您必须输入一个国家 ”;}
还要确保HTML包含id为errorbox的
ul
或ol
div,并且jQuery已正确加载。javascript中的result.error
变量是什么?您可以为测试页面提供更多的代码或URL吗?所有这些都是使用AJAX请求处理的-表单数据被发送到PHP文件,该文件以上面所示的方式生成错误。然后我想用ID#errorboxstill将它们发送到OL中,您能提供更多的代码或测试页面吗?添加了在AJAX之后运行的函数,如果有帮助的话。您为什么要在将值放入数组的位置回显这些值?(您应该将新消息附加到数组中——现在每次都会覆盖上一条消息。)如果不用于计算,请不要使用+=。对于串联使用。=耶-使用+=给了我一个0的输出。在开发人员控制台中找到的响应中正确地输出错误,但是仍然没有将其放入OL$('#errorbox').html(result.error)代码>这就是我正在使用的代码。我也有一个ID为S的OL
$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>";}