簡體   English   中英

帶<a>標簽的</a> Ajax頁面加載

[英]Ajax page load with <a> tag

我有一個A-tag,單擊該標簽后,頁面會重新加載並執行某些php代碼。 成功執行php代碼后,頁面將被重定向到同一頁面。

現在的問題是,除非您不使用ajax,否則頁面會跳到頂部,我認為這是正常的。 因此,如果我可以在下面的代碼行中獲得一些幫助。

HTML:

<a href="home.php?key=some_value&val=1" id="ajax_reload">Unfollow</a>

在單擊上面的鏈接后,將執行此php代碼

PHP:

if(isset($_GET['key']) && isset($_GET['val'])){
            //some task....
            header('location:home.php'); 
        }

注意:如果我可以在不重新加載整個頁面的情況下執行此操作,則所有代碼都位於同一頁面home.php中,這確實會有所幫助。

[編輯]非常抱歉,我沒有在問題中添加此內容。 我正在使用php從mysql數據庫在頁面上顯示一堆數據。 因此所有數據都具有相同的ID和類別

要使重定向的頁面向下滾動到初始位置,請在位置標題的末尾添加一個片段(#):

if(isset($_GET['key']) && isset($_GET['val'])){
            //some task....
            header('location:home.php#ajax_reload"'); 
}

一個更簡單的解決方案是使用標簽構建鏈接,並將標簽添加到HTML中,例如:

<a href="home.php#LinkThisPartOfThePage?key=some_value&val=1" id="ajax_reload">Unfollow</a>
<div name="LinkThisPartOfThePage">...</div>

現在您的鏈接將指向該特定的div

如果要在PHP中執行操作而不重新加載頁面,則解決方案是使用ajax。

范例:

HTML:

<a href="#" id="ajaxButton">Click !</a>

Javascript:

$("#ajaxButton").on('click', function() {
   var btn = $(this);
   $.ajax({
        url : 'phpscript.php?key=somevalue&val=1',
        type : 'GET',
        dataType : 'json', 
        success : function(dataObject, statut){ 
            // some tasks ...
            console.log(dataObject);
        },

        error : function(result, statut, error){
            console.log(erreur);
        }
    });
});

PHP的:

<?php
    if(isset($_GET['key']) && isset($_GET['val'])){
        //some task....
        return json_encode($result);
    }
?>

這樣,PHP的返回可與javascript一起使用,而無需重新加載

嘗試通過ajax做到這一點

<a href="javascript:void(0);" class="ajax_reload" data-key="some_value" data-someval="1">Unfollow</a>
    <script>
    $(function(){
        $('.ajax_reload').on('click',function(){
     $.ajax({
                 url : home.php,
                 type:'POST',
                 data : {key: $(this).data('key'), val:$(this).data('someval')},
                dataType:'json',
                success:function(data)
                {
                    if(data.success==1)
                   location.reload();
                }
            });
    });

});

</script>

在家里.php

if(isset($_POST['key']) && isset($_POST['val'])){
            //some task....
           echo json_encode(array('success'=>1));exit();
       }

它可能包含一些語法錯誤,這是通過ajax使用它的基本思路

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM