2011-10-03 81 views
0

我需要從客戶端的服務器端調用Javascript函數。我看了,並沒有找到任何方式如何做到這一點。我也看了AJAX,但無法弄清楚。我正在使用ASP(clasic)而不是.net。Javascript調用函數serverside

我需要在客戶端使用來自客戶端的變量調用函數。請幫幫我!!!太感謝了 !!!

我正在使用FlashMovies通過ExternalInterface類向Javascript函數發送值。接收它的JavaScript功能是gAnswer(結果),並在此功能中我會需要有類似:

服務器端: 功能saveResult(結果) {代碼被保存在服務器上放在這裏}

客戶端: 函數gAnswer(結果) {saveResult(result)} < - 這是我不知道該怎麼做的部分。
當flash影片自行完成時,會調用gAnswer函數。 你能提供一些代碼如何?感謝您幫助我的每個人=)

+0

閱讀:http://stackoverflow.com/questions/7016701/creating-jquery-ajax-requests-to-a-php-function/7016795#7016795 – NullUserException

+0

你的網站上是否有JQuery?你的JavaScript執行的地方,在flash電影或在一個正常的腳本代碼塊? –

回答

0

調用服務器端功能,從客戶端通過Ajax在這裏使用這樣的:

function CallServersideFunction() { 


     url = "CmsAjax.asp"; 
     if (window.XMLHttpRequest) { 
      http = new XMLHttpRequest() 
     } 
     // code for IE 
     else if (window.ActiveXObject) { 
      http = new ActiveXObject("Microsoft.XMLHTTP") 
     } 

     if (http) { 
      http.open("GET", url, true) 
      http.onreadystatechange = handleHttpResponsearticleID; 
     } 
     isWorking = true; 
     http.send(null); 


} 

function handleHttpResponsearticleID() { 
    if (http.readyState == 4) { 
     if (http.responseText.indexOf('invalid') == -1) { 
      var xmlDocument = http.responseXML; 
      fno = xmlDocument.getElementsByTagName('id').length; 
      if (fno > 0) { 
      alert('Successfully done.') 
       } 
     } 
    } 
} 

在此頁面「CmsAjax.asp」你可以做你的服務器端操作。

+0

你能不能請給我更多的信息它是如何工作的它是如何發送到cmsajax我如何捕獲它。對不起,我真的很陌生 – Dusty

+0

嗨Dusty,你需要在你的savedata()函數中放入CallServersideFunction()的內容,然後你需要創建一個.asp頁面,你需要做你的數據庫端操作。和handleHttpResponsearticleID()只給出了這個.asp頁面的回覆,如果你是新的,你現在可以避開這個函數。 –

0

您無法從客戶端調用服務器上的功能。

  1. 客戶端發出一個HTTP請求
  2. 服務器構造一個響應(HTML對於本示例)
  3. 服務器傳送到客戶機
  4. 客戶端解析HTML和執行任何JS
  5. 響應

到階段4,生成頁面的程序將終止。

如果您希望在服務器上發生基於客戶端腳本執行的操作,那麼您需要創建一個新的HTTP請求。有很多方法可以做到這一點:

  • 點擊一個鏈接(幷包括URI中的數據)
  • 提交表單
  • 設置src或IFRAME
  • 使用XMLHttpRequest(中的Ajax的最常見的形式)
  • 創建<img>和包括在src
  • 等數據