繁体   English   中英

使用 Ajax 和 Javascript 传递变量

[英]Passing a Variable with Ajax and Javascript

我拥有高级 ASP(经典)技能,但对 JavaScript 和 Ajax 还很陌生。我正在开发一个允许用户输入评论以响应帖子的页面。 我想要表单提交字段将读者评论提交到数据库,然后在不更改页面的情况下显示这些评论。 很像 Facebook 评论。 因此 Ajax 和 JavaScript。

我有 test.asp 页面(如下)工作。 它调用 AJAX.asp 页面,写入数据库,并使用提交的文本更新页面中的 a。 我唯一的问题是我需要更新一个包含多个部分的页面,所以我需要将一个变量放入第二个 JavaScript function 以允许我写入一个唯一的。 目前它被设置为 id="newcomment" 但这将需要更改为类似 id="newcomment" & var 的内容,以便结果为“newcomment1484”(或另一个唯一编号)并且右侧得到更新。

对于我的一生,我无法弄清楚如何在那一秒 function 中获取变量。非常感谢任何帮助。 请记住我对 JS 很陌生。

<html>
<head>
</head>
<script>

function SendtoAjax(ident)
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

oRequest.open("POST", "AJAX.asp", true);
oRequest.onreadystatechange = UpdateComment;
val=document.getElementById('commentfield').value.replace(/\n/g, "<br>");
oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strCmd=availability&commentaid=" + ident + "&commentfield=" + encodeURIComponent(val));
}

function UpdateComment(ident)
{
if(oRequest.readyState == 4)
{
if(oRequest.status == 200)
{
document.getElementById("newcomment").innerHTML = oRequest.responseText;
}
else
{
document.getElementById("newcomment").innerHTML = "Asychronous Error";
}
}
}
</script>
<body>

  <form method="post" action="javascript:void(0);" name="form1">


<textarea name="commentfield" id="commentfield"></textarea>
<input id="commentaid" type="hidden" value="Available1434">
<input id="submitcomment" type="button" value="submit" onClick="SendtoAjax(1434);">
<br><br><div id="newcomment"></div>


</form>

</body>
</html>

我尝试了所有在其中获取变量的方式,但后来了解到(我认为?)“onreadystatechange”和 Ajax 存在一些问题。目前超出了我的范围。

您需要传递一个formData object,有关如何执行此操作的示例,请参阅文档

let formData = new FormData();

// append some data (key, value)
formData.append("strCmd", "availability");

// send it with the form
oRequest.send(formData);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM