2016-03-23 202 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查詢的結果創建此代碼,所以它基本上是PHP文件中的JavaScript文件。目標是一個只有一些功能的空白頁面。

函數從該<select>調用onChange

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 * ..(爲什麼不創建一個函數接受你的$行['idname''作爲參數? – FredMaggiowski

+1

當然它被稱爲 - 我不想只調用該函數,因爲action.php應該像api一樣工作,通過調用這個頁面,action x將會被執行。 –

+0

好的,謝謝(我已經將代碼添加到了問題中評論它的相當不可讀) – FredMaggiowski

回答

0

,因爲它不是一個很好的方法,只是經常更換它,這可能解決問題。您可能會考慮添加一些錯誤處理,在錯誤消息中沒有錯誤元素進行測試,並將錯誤消息作爲ID的一部分進行選擇。

已過時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);} 
});