-1

フォームを使用して画像 ID を別のページに送信しました。URLをよりきれいにするので、URL経由ではなくrではなくこれを行いました。ただし、ユーザーがリロードすると、フォームを再度送信するかどうかを尋ねられます。単に画像をクリックしただけで、その画像を大きく表示するページに移動したことを認識している限り、フォームを送信したことはわかりません。

非表示のフォーム フィールドがフォーム経由で送信した画像 ID を保存し、ユーザーのページを更新する方法はありますか?

HTML

<a class="gallery-img span4 js-img-submit" href="#">
   <img src="img.jpg"/>
   <form action="/image" method="post">                                
     <input type="hidden" value="<?=$img['id']; ?>" name="image_id"/>
   </form>
</a>

Jクエリ

$('.js-img-submit').click(function(){           
        $(this).find('form').submit();            
 })

PHP

$image_id = isset($_POST['image_id']) ? $_POST['image_id'] : false; 
4

2 に答える 2

0

どういうわけか、パラメーターを画像ページに送信する必要があります。

  • GET: あなたはそれを望んでいません。
  • POST:それを使用しますが、リフレッシュの問題が発生します。
  • SESSION: 非表示になりますが、複数の画像を開いて最初のページを更新すると問題が発生します。

だから、私は次のようにします:

ハッシュタグを使用し、JavaScript 経由で画像を読み込みます。最後にハッシュタグを削除します:

メインページ:

<a class="gallery-img span4 js-img-submit" href="/image#<?=$img['id']; ?>">
   <img src="img.jpg"/>
</a>

画像ページ:

<script language="javascript">
$(document).ready(function(){
   var imgid = document.location.hash.slice(1);
   document.location.hash = ""; //Remove
   loadImage(imgid);
})
</script>

loadImage は、必要な JavaScript 関数である必要があります。

ユーザーは一瞬それに気付くかもしれません。ユーザーが見ることを許可されていない場合、唯一の方法は、開いているすべての画像ウィンドウに対して個別の変数を使用して PHP セッションを使用することです。

于 2013-09-12T11:55:00.463 に答える
0

次のようなことができます。

$('.js-img-submit').click(function()
{           
    $.post("image.php", {id: $(this).find('input').val()});                
})
于 2013-09-12T11:55:51.453 に答える