2016-03-23 2 views
0
echo '<script> 
    function ' . $row['idname'] . 'Click(){ 
     $("#flip-' . $row['idname'] . '").flipswitch("disable"); 
     var isOff = document.getElementById("flip-' . $row['idname'] . '").value; 
     if(isOff == "off"){ 
      console.log("action.php?do=turn-off-' . $row["id"] . '"); 
      jQuery.ajax({ 
       url: "action.php?do=turn-off-' . $row["id"] . '", 
       type: "GET", 
       success:function (data) { 
        $("#flip-' . $row['idname'] . '").flipswitch("enable"); 
        console.log("SUCCESS!!"); 
       } 
      }); 
     }else{ 
      console.log("action.php?do=turn-on-' . $row["id"] . '"); 
      jQuery.ajax({ 
       url: "action.php?do=turn-on-' . $row["id"] . ', 
       type: "GET", 
       success : function (data) { 
        $("#flip-' . $row['idname'] . '").flipswitch("enable"); 
        console.log("SUCCESS!!"); 
       } 
      }); 
     } 
    } 
    </script><br>'; 

Так что моя проблема в том, что ajax даже не загружает запрошенную страницу.jQuery Mobile AJAX не загружается страница

Он создает этот код из результата запроса MySQL, поэтому в основном это файл JavaScript в файле PHP. Цель - пустая страница, которая имеет только некоторые функции.

Функция вызывается onChange из этого <select>:

echo '<div class="ui-field-contain" style="width: 100%;"> 
    <label for="flip-' . $row['idname'] . '">' . $row['name'] . '</label> 
    <select onchange="' . $row['idname'] . 'Click()" name="flip-' . $row['idname'] . '" id="flip-' . $row['idname'] . '" data-role="flipswitch"> 
     <option value="off" selected="">Aus</option> <option value="on">An</option> 
    </select> 
</div>'; 
+0

глупый вопрос: функция называется где-то, не так ли? (я спрашиваю, так как у него есть * динамическое имя генерации через * php * .. (Почему бы вам не создать функцию, которая принимает вашу '$ row ['idname'' в качестве аргумента? – FredMaggiowski

+1

, конечно, она называется - и я не хотел просто называть эту функцию, потому что action.php должен работать как api позже, вызывая эту страницу, будет выполняться действие x. –

+0

ok, thanks (я добавил код к вопросу, так как с комментарии его довольно нечитаемы) – FredMaggiowski

ответ

0

Это может решить эту проблему, потому что это не хороший способ просто заменить его всегда. Возможно, вы захотите добавить некоторую ошибку, где не будут проверены неправильные элементы, которые будут выбраны с сообщением об ошибке как часть идентификатора.

Осуждаемый jqXHR.success()

Проблема может возникнуть так как этот метод является устаревшим, так как JQuery 1.8. Он был заменен на jqXHR.done().

jQuery.ajax({ 
    url: "action.php?do=turn-on-' . $row["id"] . '", 
    type: "GET", 
    done: function (data) { 
     $("#flip-' . $row['idname'] . '").flipswitch("enable"); 
     console.log("SUCCESS!!"); 
    } 
}); 

Предложив другой способ

$.get("api.php", { 
    do: "turn-on-' . $row["id"] . '" 
}, function (data) { 
    console.log(data);} 
}); 
Смежные вопросы