2017-02-16 4 views
1

Это мой сценарийОбработка ответа Json в Jquery

<script type="text/javascript"> 

$(function() { 
    $('#domain-checker').bind('submit',function(event){ 
     $.post('https://www.my-site.com/come/domainchecker.php', 
     $(this).serialize(), 
     function(json) { 
      if(json.error) { 
       $(".rezultat").text(json.error.message).fadeIn(); 
      } else if(json.result) { 

       $(".rezultat").text("Domen je dostupan").fadeIn(); 
      } else { 

       $(".rezultat").text("Domen je zauzet").fadeIn(); 
      } 
     }, 'json'); 
     return false; 
    }); 
}); 
</script> 

Это ответ от моего PHP скрипт:

домена недоступен:

{ 
    "request":{ 
     "operation":"checkRegisterAvailability", 
     "ip":"XXX.XXX.XXX.XXX" 
    }, 
    "reply":{ 
     "code":"300", 
     "detail":"success", 
     "unavailable":{"domain":"google.com"} 
    } 
} 

Домен доступен:

{ 
    "request":{ 
     "operation":"checkRegisterAvailability", 
     "ip":"XXX.XXX.XXX.XXX" 
    }, 
    "reply":{ 
     "code":"300", 
     "detail":"success", 
     "available":{"domain":"johnsmithisthebest.com"} 
    } 
} 

Когда это недействителен:

{ 
    "request":{ 
     "operation":"checkRegisterAvailability", 
     "ip":"XXX.XXX.XXX.XXX" 
    }, 
    "reply":{ 
     "code":"300", 
     "detail":"success", 
     "invalid":{"domain":"asdasd.com.com"} 
    } 
} 

Я хочу, чтобы отобразить различные сообщения для каждого из этих ответов что-то вроде $(".rezultat").text("Domen je dostupan").fadeIn() Я искал в Интернете о переменных, значений, JSON и Jquery ничего полезного реально. Самая полезная статья, которую я придумал, таков: http://api.jquery.com/jquery.parsejson/ Но поскольку это моя первая попытка jquery, которую я пишу здесь. Я не знаю, где искать.

Следуйте до Jamiecs ответа

<script type="text/javascript"> 

$(function() { 
    $('#domain-checker').bind('submit',function(event){ 
     $.post('https://www.my-site.com/come/domainchecker.php', 
     $(this).serialize(), 
     function(json) { 
      if(json.reply.invalid) { 
    $(".rezultat").text("Domen " + json.reply.invalid.domain + " nije validan").fadeIn(); 
      } else if(json.reply.unavailable) { 

       $(".rezultat").text("Domen nije dostupan").fadeIn(); 
      } else { 

       $(".rezultat").text("Domen je dostupan").fadeIn(); 
      } 
     }, 'json'); 
     return false; 
    }); 
}); 
</script> 

ничего не печатает.

EDIT:

Я добавил

header('Access-Control-Allow-Origin: *'); 

Чтобы domainchecker.php и теперь он работает.

+0

Как работает 'HTML' код' rezultat' выглядит как? –

+0

'

' Это не проблема, это рабочий код, который я точно знаю, мой вопрос в том, как определить, какой ответ передается через json в jquery. – Darktwen

+0

Я не уверен на 100%, если я правильно вас понимаю, но вы не можете проверить этот путь: 'if (json.reply.unavailable! = Null) {$ (". Rezultat "). Text (" Domen je dostupan ") FadeIn(). } '? –

ответ

0

Когда вы планируете свои ответы, чтобы их было легче читать (см. Вопрос об обновлении), ясно, что ни json.error, ни json.result никогда не были в одном из трех типов или ответов. Кроме того, json.error.message никогда не бывает в любом результате ... так что остальная часть этого ответа немного догадывается.

Чтобы определить, является ли «недействителен» ответ вернулся вы могли бы сделать это:

if(json.reply.invalid){ 
    $(".rezultat").text("The domain " + json.reply.invalid.domain + " is invalid").fadeIn(); 
} 

Аналогично для «недоступного» ответ

else if(json.reply.unavailable) { 
    $(".rezultat").text("Domain is unavailable").fadeIn(); 
} 
+0

Это не печатает ни один из этих ответов. См. Мое редактирование – Darktwen

+0

Я попытался использовать предупреждение, код определенно не работает. Также я пытаюсь добавить json.request.reply.invalid, потому что ответ содержится в запросе, но не повезло. Помогите? – Darktwen

+0

@ Darktwen У вас есть ошибки в консоли.Если вы просматриваете вкладку сети вашего браузера, вы видите запрос ajax? Вы можете увидеть ответ или ошибку звонка. – Jamiec