繁体   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