首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP JQuery和Jeditable

PHP JQuery和Jeditable
EN

Stack Overflow用户
提问于 2012-06-01 23:23:04
回答 2查看 663关注 0票数 0

关于这个问题,我有一个简短的问题。我正在使用jeditable在页面上就地编辑一些字段。这是完美的工作。现在我希望实现一些数据检查。我有我的php代码来检查输入的数据,如果正确,它会更新数据库,如果不正确,它将返回错误。我的问题是,我希望它吐出错误来告诉他们,但当他们再次单击字段进行编辑时,它会在字段中显示错误,直到页面刷新。我希望它所做的是,当他们在错误发生后点击它时,在字段中有相同的数据,而不是必须刷新页面,然后再次单击该字段进行编辑。也许有一种方法可以返回错误,并将其传递到字段上方的某种工具提示中?当然,jeditable的工作方式是div包围了字段,然后我有一些js调用我的update.php文件,这会解析jeditable传递给它的内容,并返回一个返回错误检查的$value,默认情况下,它只是简单地放在php“$value $value;”的底部,在字段保存到数据库中后放回字段。

希望有人能理解我在这里的要求,任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2012-06-01 23:44:45

最简单的方法可能是做一些客户端验证。现在,您正在通过在表单提交时签入PHP来进行服务器端验证。你在检查什么?没有代码,很难给你一个很好的客户端验证的例子。

基本字段检查:

代码语言:javascript
复制
var check_field = $("#field").val();
if (!check_field) { alert("Error message"); } else 
{ 
   // submit POST or whatever 
}

编辑

由于MAC地址验证算法已经在服务器端编写,因此我建议使用一个单独的ajax POST请求来调用检查器函数。获取该请求的结果(true,false)并检查客户端。如果为true,则继续进行更新调用。

示例:

代码语言:javascript
复制
$("#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,但是如果您手头已经有了这个函数,您应该能够处理它。

票数 0
EN

Stack Overflow用户

发布于 2012-06-02 02:42:01

讨厌我这样做,在这里发帖,然后找出答案myself...but至少如果有人有相同的问题,他们将看到它。我发现了jeditable的onsubmit函数……我在编辑字段时使用工具提示在悬停时显示,所以这会将工具提示设置为错误,并且不提交数据,除非它是有效的mac。

代码语言:javascript
复制
    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"
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10853069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档