2016-02-19 4 views
0

Я пытаюсь сделать что-то вроде нажатия кнопки пользователем, он отправляет запрос json, и я хочу, чтобы он показывал ответ json, но у меня есть некоторые ошибки, t выяснить, как его решить.JQuery + ajax + json не отображать ответ

HTML:

<a class="backLink" id="target_button" onclick="insertText('target_', 'AA', 'NN')"><div class="fa fa-external-link"></div>Show</a> 

JS + Ajax:

<script type="text/javascript"> 
    function insertText(elemID, text, text2) { 
     $.ajax({ 
      url: "https://myserver.com/jsons.php?request=getTargets&tar="text"&bar="text2"", 
      beforeSend: function (xhr) { 
       xhr.overrideMimeType("text/plain; charset=x-user-defined"); 
      } 
     }) 
     .done(function (data) { 
      if (console && console.log) { 
       console.log(data); 
       var getValue = $("#" + elemID).val() == "" ? data : ""; 
       $("#" + elemID).val(getValue); 
      } 
     }); 
    } 
</script> 

Я не уверен, если я делаю это в лучшую сторону. Это что-то простое. Пользователь нажимает на кнопку, вызывает функцию с этими параметрами, делает запрос json, получает ответ и отображает его на элементе. Благодаря

EDIT: изменения я сделал

<script> 
      console.log('called'); 
      function insertText(elemID, product, country) { 
       "use strict"; 
       console.log('called2'); 
       $.ajax({ 
        url: 'https://myserver.com/jsons.php?request=Targ&country=" + country + "&product=" + product +".", 
        beforeSend: function (xhr) { 
         xhr.overrideMimeType("text/plain; charset=x-user-defined"); 
        } 
       }) 
        .done(function (data) { 
         if (console && console.log) { 
          console.log(data); 
         } 
        }); 
       console.log('called3'); 
      } 
      console.log('called4'); 
     </script> 

результат на консоли:

called 
called4 

это выглядит как я не могу войти на функцию

+0

Если вы проверили вкладку сети консоли, вы можете увидеть запрос вместе с его ответом и состоянием. –

+0

Не показывает ничего @RoryMcCrossan – 62009030

+0

Если вы ничего не видите, запрос не отправляется. Вызывается функция 'insertText()' вообще? –

ответ

0

Как я это сделал:

<script type="text/javascript"> 
      function insertText(elemID, p, c) { 
       var server = window.location.hostname; 
       $.ajax({ 
        url: "https://" + server + "/jsons.php?request=Target&c=" + c + "&p=" + p +"", 
        beforeSend: function (xhr) { 
         xhr.overrideMimeType("text/plain; charset=x-user-defined"); 
        } 
       }) 
        .done(function (data) { 
         console.log(data) 
         var tmp = data.replace('"',""); 
         var tmp2 = tmp.trim(); 
         var getValue = $("#" + elemID).val() == "" ? tmp2 : ""; 
         $("#" + elemID).val(getValue); 
        }); 
      } 
     </script> 

HTML:

<a id="t_button" onclick="insertText('t_d', '<?php $c ?>', '<?php $p ?>');" > show</a> 

Надеюсь, это поможет кому-то другому!

0

Написать console.log('called'); в вашей insertText() функции перед линией содержит $.ajax({

Итак, вы можете видеть, что функция вызывается нажатием или нет.

Если вкладка «Консоль» Инструментов разработчика выдает ошибки JavaScript, это может также привести к дополнительному исполнению JavaScript.

+0

Не показывает ничего на консоли. – 62009030

+0

Включен ли JavaScript в вашем браузере? Является ли JS и HTML в одном файле? Попробуйте переместить console.log ('called'); сразу после