【问题标题】:Problem with jQuery post and (dynamic?) varsjQuery post 和(动态?)变量的问题
【发布时间】:2011-06-26 05:29:07
【问题描述】:

嘿,我有一个有效的 jquery post 功能,但它仍然无法正常工作,因为我希望它可以正常工作。 var“url”应该是一个url,如下面的正则表达式模式,当它与正则表达式模式匹配时,jquery应该将一个带有url的请求发布到我的php文件中,之后它将返回一个唯一的ref id并重写url 到我自己网站上的新网站,例如 example.org/ref.php?id=unique1235 (使用 php 脚本生成的唯一字符串重写/替换 url 已经很完美了。)

我的 JQuery 函数如下所示:

    $(".url2").keyup(validNum).blur(validNum);

    var refid;

    var url;  // needs to be extracted from the live input textarea with the pattern below that is used to replace the old url with the new one coming from the post php script

    $.ajax({                     url: "/test.php",
                                 data: {
                                 url: url
                                 },
                                 type: "POST",
                                 success:function(returnID) {
                                 refid = returnID 
                                     }
                                });




    function validNum() {
     var initVal = $(this).val();
    outputVal = initVal.replace(/(https?:\/\/)?(www.)?[0-9A-Za-z-]{2,50}\.[a-zA-Z]{2,4}([\/\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#]){0,250}(\s){1}$/
,refid);  
    if (initVal != outputVal) {
        $(this).val(outputVal);
        return false;
        }}
});

我无法“活”——从我的 textarea 中提取 url 并将其保存到“var url”,以便可以将其传递并发送到保存旧 url 并替换为唯一字符串的 php 脚本(如上所述)。如果有人能够帮助我,我会很高兴。非常感谢:)

【问题讨论】:

    标签: php jquery html ajax


    【解决方案1】:

    问题是您直接触发 $.ajax() ,就像“每次加载文档时,都会加载空请求,并且不会加载更多”。把它放在一个函数上,像这样:

       function request_my_URL(){
              var refid;
               var url=$('.url2').val();      
               $.ajax({              url: "/test.php",
                                     data: {
                                     url: url
                                     },
                                     type: "POST",
                                     success:function(returnID) {
                                     refid = returnID;
                                     alert(refid);
                                         }
                                    });
       }
    

    现在,在某个按钮的点击事件中调用该函数,例如:

       <textarea class='url2'></textarea>
       <input type='button' value='Get the URL!' onClick='request_my_URL();' />
    

    现在轮到你修改它以按预期工作了:D

    祝你好运;)

    编辑:

    对于实时检查,您可以使用:

    $(".url2").keyup(function(){validNum(); request_my_URL();}).blur(function(){validNum(); request_my_URL();});
    

    【讨论】:

    • 嗯,谢谢!我的问题是,支票应该是实时的;(
    • 是的,它应该实时检查 url 的输入,因为这些函数在输入后也会实时替换 url。如果有人输入“你好 example.org 这是我的页面”,它会将 url 替换为“ var refid"(my.site/ref.php?id=unique_ref_id) 只要用户在“你好 example.org”之后点击空格。所以我还需要实时检查 url 输入,然后将其保存到“var url”,将 var 发送到我的 php 文件,然后继续使用已经工作的替换功能。
    • 嗨 Ryan,首先非常感谢您的努力。但似乎我仍然太愚蠢而无法完成它。我的代码现在看起来像这样jsfiddle.net/DQHNM,现在试图让它工作几个小时,可能只是一个小错误,但我可以让它工作;(
    • 谢谢你,你很棒,但我认为你没有理解正确。我有一个文本区域,用户可以在其中输入他想要的任何内容,当然还有有效的 url。所以我正在尝试检查 textarea 是否有一个与我的模式匹配的有效 url,这个 url 应该保存为 var 并发送到我的 php 文件,如果将它保存到我的数据库并创建一个返回的唯一字符串到 jquery 函数。完成所有操作后,应通过我的工作函数将旧输入的 url 替换为新的 ref url。它应该与 bit.ly 上的功能几乎相同(reg 用户的 twittershare)
    • 用户应该能够在 url 之后写更多的内容,所以在文本区域中可能会出现这样的内容:“你好,访问我的 websi.te(将 url 保存为 var,执行脚本,替换旧带有 my.site/ref.php?id=unique1234 [everything live] 的网站)谢谢你们”我的意思可以理解吗? :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多