2013-06-04 88 views
1

我正在使用以下命令來自動刷新div的內容。jquery - 在load中使用的更改URL()

$(document).ready(function() { 
    $("#log").load("test.php?q=" + $('#sq').val()); 
     var refreshId = setInterval(function() { 
    $("#log").load("test.php?q=" + $('#sq').val()); 
     }, 1000); 

    $.ajaxSetup({ cache: false }); 
}); 

這似乎工作正常。我有一個名爲'sq'的文本字段,其中輸入的任何內容都是由test.php搜索的。

我的網頁還有2個其他表單域。 複選框和另一個文本字段。該複選框具有id'chk'和文本字段'txt'。

如果勾選複選框並在文本字段中輸入值,我想要做的是更改load()使用的URL。顯然這也需要包含'sq'。

有人能指出我正確的方向。

與出被選中的複選框的網址是:(就是現在)

test.php?q=VALUE_FROM_sq 

隨着的複選框選中它需要:

test.php?s=1&txt=VALUE_FROM_txt&q=VALUE_FROM_sq 

然後test.php的可以使用$ _REQUEST獲取傳遞的值。

我的網框只支持PHP4,這樣就限制了我一些..

有人能指出我在正確的方向。謝謝

回答

3

只需添加一些邏輯代碼:

$(document).ready(function() { 
    $.ajaxSetup({ cache: false }); 
    var refreshId = setInterval(LoadLog, 1000); 
    LoadLog(); 
}); 

function LoadLog() { 
    var sq = $('#sq').val(); 
    var text = $("#txt").val(); 
    var url = "test.php?q=" + encodeURIComponent(sq); 
    if ($("#chk").is(":checked") && text.length > 0) 
     url += "&s=1&txt=" + encodeURIComponent(text); 
    $("#log").load(url); 
} 
+1

打我吧:) –

+0

謝謝,我會嘗試。我需要使用encodeURIComponent嗎?我需要做什麼以test.php頁面來接收? – MacMan

+0

'encodeURIComponent'確保將正確的值傳遞給服務器,例如即使空間可能會破壞URL並應該被編碼。 PHP會自動獲取它並知道正確解碼,您不需要進一步做任何事情。 –

0

您可以將URL保存在一個單獨的變量中,並在複選框的已更改事件上進行更新。

var url = "test.php?q=VALUE_FROM_sq" 

$(document.body).on('change', '#chk', function (event) { 
    if ($(this).is(':checked')) { 
    url = "test.php?s=1&txt=VALUE_FROM_txt&q=VALUE_FROM_sq" 
    } else { 
    url = "test.php?q=VALUE_FROM_sq" 
    } 
}