2013-05-19 3 views
1

Я новичок в обучении tcl и adp ,, мой код ajax не возвращает результат из файла tcl, хотя он отправляет запрос, поэтому я подумал, что, возможно, мне следует добавить команду для ответа, пожалуйста, помогите мне с кодом ниже:Должен ли я добавить ns_return/ns_respond к моему коду?

<html> 
    <body> 
    <form action=""> 
    <input value="Get Time" type="button" onclick="showCurrentTime();" name="GetTime"> 
    <div id="result" align="center"></div> 
    </form> 
    <script language="Javascript"> 
    function showCurrentTime() 
    { 
var xmlhttp; 

if (window.XMLHttpRequest) { 
    xmlhttp=new XMLHttpRequest(); 
} 
xmlhttp.onreadystatechange=function() 
{ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     document.getElementById("result").innerHTML=xmlhttp.responseText; 
    } 

    xmlhttp.open("GET","time.tcl",true); 
    xmlhttp.send(); 
} 
    } 
    </script> 

    </body> 

Обратите внимание, что файл TCL работает правильно печатать время, так что если мне нужно добавить команды ns_return или команда ns_respond добавьте некоторое объяснение, заранее спасибо :)

ответ

1

Возможно, вам будет проще использовать jQuery в вашем Javascript, так как это позволяет вам писать свой код на стороне клиента более лаконично. (Обратите внимание, что я хотел бы поставить ссылки, используемые в моем Javascript в разделе <head> и затем потяните их в качестве ссылки, как это помогает отладки в сложных случаях.)

<html> 
<head> 
    <script src="jquery.js"></script> 
    <link id="timer" href="time.tcl" /> 
</head> 
<body> 
<form action=""> 
<input value="Get Time" type="button" onclick="showCurrentTime();" name="GetTime"> 
<div id="result" align="center"></div> 
</form> 
<script language="Javascript"> 
var timerURL = $("#timer")[0].href; 
function showCurrentTime() { 
    $.get(timerURL, function(response) { 
     $("#result").html(response); 
    }); 
} 
</script> 
</body> 

Далее вам нужно проверить, что тип содержимого ответ от сервера. Вы должны убедиться, что это text/plain, если я понял, что вы пытаетесь сделать в этом случае. Если я прочитал документацию для ns_respond прав, вы хотите сделать что-то вроде:

ns_respond -type "text/plain" -string [clock format [clock seconds]] 

В целом, возвращение JSON часто даже более полезными, если вы хотите, то немного разные методы для его отображения.

+0

Вы также можете использовать 'ns_return 200 text/plain [формат часов [часы секунд]]' Я полагаю. Однако 'ns_respond' является немного более гибким. –

+0

Большое спасибо @ Donal Fellows за отличную помощь и за код jquery намного проще :), но я до сих пор не привык к этому ... все получилось отлично :) Спасибо снова и снова! – sisimh

Смежные вопросы