2011-06-25 19 views
0

ちょっと働いているjqueryのポスト関数がありますが、まだ動作していないので動作しません。 var "url"は、以下の正規表現パターンのようなURLでなければなりません。正規表現のパターンと一致する場合、jqueryはURLを含むリクエストをPHPファイルに投稿し、その後、一意のref idを返し、 URLはexample.org/ref.php?id=unique1235のような私自身のサイトで新しいものにURLを書き換えます(PHPスクリプトから一意に生成された文字列で置き換えます)。jQueryポストと(動的?)varsの問題

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

私は私のテキストエリアからURL -extract「ライブ」にできないことだし、それが渡され、古いURLが保存されますPHPスクリプトに送信し、交換することができるように、「VaRのURL」にそれを保存(上記のように)一意の文字列で指定します。誰かが私を助けることができるなら、とてもうれしいでしょう。ありがとうalot :)

答えて

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

幸運;)

EDIT:

ライブチェックの場合は、次のように使用できます。

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

hmありがとうございます!私の問題は、チェックがライブでなければならないということです。( – wordiboi

+0

実際にURLを入力した後、機能がURLのライブを置き換えるため、入力を確認する必要があります。 "hallo example.orgに入力するとこれが私のページです"ユーザーが "hallo example.org"の後にスペースを置くとすぐに "var refid"(my.site/ref.php?id=unique_ref_id)でURLを置き換えます。したがって、私はURL入力のためにライブをチェックする必要がありますそれを "var url"に保存して、PHPファイルにvarを送ってから、すでに働いているreplace関数を続行してください。 – wordiboi

+0

あなたの努力のために、ちょっとライアン、まずはおかげさまです。私のコードはこのようになりますhttp://jsfiddle.net/DQHNM/今、何時間も働くようにしようとしていますが、おそらくそこに小さなエラーがありますが、それを働かせることができます;( – wordiboi

関連する問題