Php 在OL中打印JSON错误

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

又是我

我有一些由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>";}
要将这些错误打印到我的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>";}