-1

我已使用表单将图像 ID 提交到另一个页面。我这样做而不是 r 而不是通过 url,因为它使 url 更干净。但是,当用户现在重新加载时,它会询问他们是否要再次提交表单。他们不会知道他们已经提交了一个表单,只要他们知道他们只是单击了一个图像并被带到一个显示该图像更大的页面。

有没有办法解决这个问题,保存隐藏表单字段通过表单发送的图像 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>

查询

$('.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 回答