簡體   English   中英

使用JQuery,AJAX和PHP

[英]Using JQuery, AJAX and PHP

我正在創建一個PHP站點,並遇到了以下問題,我希望能夠單擊頁面上的超鏈接,將一個小數據項發送到php腳本,讓腳本執行其功能,然后返回結果。

我在這個網站上使用AJAX將每個頁面加載到網站的div部分,所有頁面,數據和響應都加載到這個中央div中,如下所示:

<html>
    <body>
        <div id="topMenuBar">
            <div id="contents">
            //ALL DATA IS LOADED HERE...//
            </div>
        </div>
    </body>
</html>

因此,當從頂部菜單中選擇頁面時,我只需運行以下代碼:

$('#topMenuBar a').click(function(e)
{
    e.preventDefault();
    $('#contents').load($(this).attr('href'), function()
    {
    });
});

現在頁面加載到內容部分,我正在加載一個名為“results.php”的頁面,它連接到數據庫,查詢它,並創建一個帶有結果的HTML表。 每個表行都有一個小的超鏈接,當點擊它時,它意圖將值發送到另一個PHP腳本,然后清除內容div,然后使用此腳本的響應重新填充div(getInfo.php)。 例如,一行將具有以下PHP代碼生成鏈接:

<label class="moreInfo"><a name="test01" onClick="getInfoFromPHP(<?php echo $data[$id]; ?> )">Get Info</a></label>

因此當表格由PHP生成時,點擊時鏈接會傳遞JS函數的值。

我現在需要做的是將值發送到PHP腳本,該腳本將再次查詢數據庫,並將結果插入“contents”div。 我一直在嘗試以下功能。

function getInfoFromPHP(myVar){
    var netID = myVar;
    $.ajax({
        url: "getInfo.php",
        type: "POST",     
        data: { 
            networkID: netID
        }, 
        success: function(html) {
            $('#contents').empty();
            $('#contents').load(html);
        }      
    });
};

當我調用該函數時,它似乎確實將數據發送到腳本但我從firebug得到以下錯誤:

POST http://127.0.0.1/private/networks/includes/leave_a_network.php - 200 OK -15ms
GET http://127.0.0.1/%3Ch2%3EHello 403 Forbidden 21ms“NetworkError:403 Forbidden - http://127.0.0.1/%3Ch2%3EHello ”你好

PHP腳本僅執行以下操作:

<?php
    session_start();
    $networkID = $_POST['networkID'];
    echo "<h2>Hello World</h2>";
?>

將數據發送到PHP腳本並將其加載到div中的最佳方法是什么?

感謝您的任何反饋。

在success函數中,放入$('#contents')。html(html); 而不是負載。

success: function(html) {

將html作為一個字符串返回,不需要像你在這里嘗試一樣'加載' -

$('#contents').load(html);

將該行更改為此

$('#contents').html(html);

更好的方法是使用$ .ajax發送請求。 在成功回調中,您可以分析結果,並執行您想要的操作:

http://api.jquery.com/jQuery.ajax/

暫無
暫無

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

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