jQuery帖子和(动态?)变量的问题

时间:2011-06-25 21:01:11

标签: php jquery html ajax

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

我的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”,以便可以传递并发送到旧脚本保存的php脚本并替换为唯一的字符串(如上所述)。如果有人能够帮助我会很高兴。非常感谢:)

1 个答案:

答案 0 :(得分: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);
                                     }
                                });
   }

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

   <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();});