2011-10-10 88 views
0

我想在onc​​lick事件上調用一個asp函數。如何在onclick事件上調用asp函數?

<img src="..." style="cursor: pointer;" onclick="..." /> 

在這裏,在onclick我想下面的函數調用:

function getproject(valuenew) 
    response.Cookies("projectname") = valuenew 
end function 

我應該怎麼辦呢?

+0

嚴重的是,拿起一個教程,讀它,在你真正開始寫東西。 – Rufus

+0

但是可以在onclick上調用asp函數嗎?或者我們不能從客戶端調用服務器端代碼 - 所有服務器端代碼在客戶端看到響應之前完成執行。 – user985225

+1

現在你正在說的是一個真正的初學者,而不是一個完全局外人。是的,你永遠不能在瀏覽器上運行任何服務器端代碼,但你可以調用一個網頁,給它一些參數並得到結果。如果你想在不刷新當前網頁的情況下做到這一點,那麼你必須嘗試我們所說的阿賈克斯。 – Rufus

回答

0

您不必使用ASP來設置cookie,但我會給你簡單的方式來執行點擊元素後的ASP代碼。

首先,添加隱框到你的網頁:

<iframe id="ajaxFrame" src="about:blank" style="display: none;"></iframe> 
onclick

現在有這樣的:

onclick="document.getElementById('ajaxFrame').src = 'PageNameHere.asp?cookievalue=Your_New_Value_Here';" 

再上一個臺階,將它添加到您的ASP代碼:(頂部)

If Request.QueryString("cookievalue")<>"" Then 
    getproject(Request.QueryString("cookievalue")) 
    Response.END 
End If 

這是不是最好的做法,但作爲你是初學者,這是我所知道的最簡單的方式。當你獲得一些經驗看看真正的AJAX,最簡單和最強大的是jQuery AJAX

+0

哇,爲什麼不顯示最佳實踐。這看起來像炫耀一個壞主意。 – Hogan

+1

隨時以最佳實踐發佈新答案。我去了一些簡單明瞭的東西,而沒有使用任何庫。如果OP願意學習,我也提到*最好的做法。 –

+0

我覺得自由的影子 – Hogan

1

返回服務器設置cookie沒有任何意義。您可以使用JavaScript非常輕鬆地設置cookie。這裏有一個例子:

var expire = new Date(); 
expire.setTime(today.getTime() + 3600000*24*5); // expire in 5 days 

document.cookie="projectname=valuenew;expires=" +expire.toGMTString(); 

下面是詳細信息的鏈接:http://www.w3schools.com/js/js_cookies.asp

相關問題