2014-02-16 67 views
0

我的問題似乎很容易,但我有點新的網頁編程,所以在這裏它是:PHP:刷新與GET參數的網頁上無需滾動

我希望我的按鈕刷新頁面,通過一些GET參數觸發一個PHP動作,我不希望屏幕在頁面頂部滾動。

我正在使用的那一刻是Ajax和JavaScript的混合體,但它確實我想要什麼,但它是不可靠的。這是我記得的代碼(我沒有手頭上的代碼)

<?php 
echo ' 
    <span href="$.ajax(\''.$_SERVER['PHP_SELF'].'?do=dosomestuff\'); setTimeout(function(){windows.location.reload()},100);)> ... </span>'; 
?> 

我有三個問題,與此實現:

  1. 我覺得這是矯枉過正,當A HREF會使用AJAX也許做的工作
  2. 我的一個朋友進行了測試,他得到了Firefox的彈出(」 要顯示此頁面,火狐必須在較早進行發送,將重複任何操作(如搜索或訂單確認信息)「)每次他點擊按鈕。我讀它來自POST數據傳遞,但我只使用GET數據。
  3. 在某些計算機上的按鈕不起作用每次。這是隨機的,也許延遲不夠大。延遲能有多大,以至於我100%肯定會每次都有效,但同時對用戶來說並不明顯。

謝謝您的幫助和建議!

編輯:以下Tularis的意見,這裏就是我想出的代碼,但我不能管理,使工作

<?php 
if (isset($_GET['do']) and $_GET['do'] == 'swap') 
{ 
    rename('img1.jpg', 'img3.jpg'); 
    rename('img2.jpg', 'img1.jpg'); 
    rename('img3.jpg', 'img2.jpg'); 
} 
?> 

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
    $("#spanLink").click(function() { 
     $.ajax('<?php echo $_SERVER['PHP_SELF'];?>?do=swap'); 
    }); 
}); 
</script> 
</head><body> 
<img src="img1.jpg" width="300" height="300" alt="cat"> 
<img src="img2.jpg" width="300" height="300" alt="dog"> 
<span style="cursor:hand;" id="spanLink">Some text to click</span> 
</body></html> 

回答

0

首先,不結合使用JavaScript嵌入HTML鏈接他們。這是不好的形式(並導致你正在遇到的問題)。相反,我建議使用jQuery和連接,像這樣的onClick事件處理程序span元素:

<html> 
<head> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(function() { 
    $.('#spanLink').click(function() { 
     $.ajax('<?php echo $_SERVER['PHP_SELF'];?>?do=somestuff'); 
    }); 
}); 
</script> 
</head><body> 
<span id="spanLink">Some text to click</span> 
</body></html> 
+0

謝謝你的答案,但我仍然無法管理,使其工作。我更新了我的代碼。 – user3316439

+0

你到底還錯過了什麼?當我測試代碼時,單擊文本將運行PHP腳本(並因此重命名文件)。它應該做其他事嗎? – Tularis

+0

單擊文本在我的情況不運行PHP腳本(在IE和Chrome)。我可以在Chrome調試器的「網絡」面板中看到請求,但這就像參數未通過一樣。我只注意到如果我的網址是/project/imgswap.php,那麼點擊文本不起作用。但是,如果url是/project/imgswap.php?do=swap,那麼點擊文本就行。任何想法爲什麼?謝謝 ! – user3316439

0

我建議你使用AJAX和jQuery在那裏你可以很容易地得到新的內容和更新任何你想要的頁面,而不重新加載完整頁面。