2016-08-15 18 views
0

Jquery Getデータは、クリックイベントによってアンカータグを介して送信されます。データをアンカータグページに正しく返しますが、ページがリダイレクトされてもそのページにデータは返されません。

アンカータグコードがあります。これは動的に生成されます。このアンカータグをクリックすると、jqueryは LikeMail.phpページにデータを送信します。これはその後、このデータは、これがどのAJAX機能でGetメソッドによってJqueryリダイレクトされたページでデータが取得されない

​​


を送信させるjQueryのメソッドである

Ajaxのメソッドを介してページ(viewProfile.php)をリダイレクトする
<a class="profile" href="<?php echo "viewProfile.php?id=" . $record['user_id'];?>" > 
        <img class="img-rounded" 
         src=" <?php echo "../shadi/images/" . $record['user_photo1'] ?>" 
         id="<?php echo $record['user_id']; ?>"alt="" width="70%" height="20%"> 

       </a> 


を返します。リダイレクトページでデータを受信します。

function like() 
{ 
    var req = new XMLHttpRequest(); 
    req.onreadystatechange = function() 

    { 
     if(req.readyState==4 && req.status==200) 
     { 
      document.getElementById('Like').innerHTML=req.responseText; 

     } 
    } 
    req.open('GET','LikeMail.php','true'); 
    req.send(); 
} 
setInterval(function(){like()},1000); 

私はなぜ私のjqueryを知りたいのですが、アンカータグページにデータを戻しますが、なぜリダイレクトされたページには戻っていないのですか?リダイレクトされたページ上で動作させたい

+0

と 'window.location.href = href;'あなたはページをリフレッシュしているので、探しているGETデータはもう存在しません/利用可能です。 – KFE

+0

アンカータグでデータを送信する方法は? –

+0

私は 'e.preventDefault();' –

答えて

0

あなたのデータはリダイレクト後に次のページに存在しません。セッションにデータを保存すると、セッションが他のページで利用できるようになります。

最初のページでデータを受け取ったPHPスクリプトで、保存したいデータをセッションに保存します。あなたがそれを行う方法がわからなければHere is a tutorial about sessions

他のページで、保存したセッションデータを読み込むだけです。おそらくPHPを使用して、ページの読み込み時に行うことができるようです。

セッションデータを取得するために別のAjax呼び出しを開始したい場合(なぜそれをしたいのか分かりませんが、私が考えることのできる良い解決策のようには見えません)あなたの前のページで設定した配列$_SESSIONを返すPHPスクリプトにあなたのajaxリクエストを送ります。

+0

はいこの解決方法はわかりますが、主な問題はセッションがスクリプト全体で一意であることです。ユーザーが他のタブを開くと、問題が発生します。 –

+0

@ZainFarooqセッションが現在のリクエストを超えて存在します。それが全体のポイントです。セッションは新しいタブでもまだそこにあるはずです。そうでない場合は、セッションまたはサーバー構成を作成する方法に問題があります。 – BadHorsie

+0

@ ZainFarooqとにかくリダイレ​​クトした後もデータを残しておきたい場合、唯一の方法はデータをどこかに保存することです - 通常セッションやデータベース。 – BadHorsie

関連する問題