簡體   English   中英

PHP JQuery和Jeditable

[英]PHP JQuery and Jeditable

關於這個問題,我只是一個簡短的問題。 我正在使用jeditable編輯頁面上的某些字段。 這很正常。 現在,我希望實現一些數據檢查。 我有我的PHP代碼來檢查輸入的數據,如果正確,它將更新該數據庫,如果不是,它將返回錯誤。 我遇到的問題是我希望它吐出錯誤來告訴他們,但是當他們再次單擊該字段進行編輯時,它將在該字段中顯示錯誤,直到頁面刷新為止。 我要執行的操作是在發生錯誤后單擊該字段時在字段中具有相同的數據,而不必刷新頁面,然后再次單擊該字段進行編輯。 也許有一種方法可以返回錯誤,並將其傳遞到字段上方的某種工具提示中? 當然,jeditable的工作方式是div圍繞着該字段,然后我在我的update.php文件上調用了一些js,它解析了jeditable傳遞給它的內容,並返回要進行錯誤檢查的$ value,並且默認情況下是否合適只需在php的底部“返回$ value;” 將其保存到數據庫中后,將其放回字段中。

希望有人能理解我在這里的要求,我們將不勝感激。

最簡單的方法可能是進行一些客戶端驗證。 現在,您正在通過提交表單時簽入PHP來進行服務器端驗證。 您要檢查什么?沒有代碼,很難為您提供一個很好的客戶端驗證示例。

基本的現場檢查:

var check_field = $("#field").val();
if (!check_field) { alert("Error message"); } else 
{ 
   // submit POST or whatever 
}

編輯

由於MAC地址驗證算法已在服務器端編寫,因此我建議使用單獨的ajax POST請求來調用檢查程序功能。 獲取該請求的結果(對,錯),並在客戶端進行檢查。 如果為true,則繼續進行更新調用。

例:

$("#form").submit(function() {
var mac = $("#macfield").val();
if (!mac) { alert("MAC address can't be empty!"); } else 
{ 
   $.POST("checkmacaddress.php", {macval: mac}).success(function(a){
       //assuming a comes back as a bool
       if (!a) { alert("Invalid MAC!"); } else
       {
          // if the checker returned true, update the record
          $.POST("update.php" ...);
       }
   });
} });

這不包括checkmacaddress.php,但如果您已經擁有此功能,則應該能夠處理該問題。

討厭當我這樣做時,在這里發帖然后自己找出答案……但是至少如果有人遇到相同的問題,他們會看到的。 我發現了關於jeditable onsubmit函數的信息...我在編輯字段時使用工具提示在懸停時顯示,因此這會將工具提示設置為錯誤,並且除非其為有效的mac,否則不會提交數據。

    function isMAC(value) {
            teststr = value;
            regex=/^([0-9a-f]{2}([:-]|$)){6}$|([0-9a-f]{4}([.]|$)){3}$/i;
            if (regex.test(teststr)){
                    return true;
            }
            else {
                    return false;
            }
    }

    $(".edit_mac").editable("edit_mac.php", {
            onsubmit: function(settings, data) {
                    var input = $(data).find('input');
                    var value = input.val();
                if (isMAC(value)) {
                            return true;
                } else {
                            //display your message
                            $("#tooltip").html("Bad MAC Address...");
                            return false;
                    }
            },
          indicator : "Saving...",
          submitdata: { _method: "put" },
          submit : 'Save',
          cssclass : "editable",
          type : "text"
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM