这是我第一次使用StackOverflow,如果我忘记了一些重要信息或者我的问题听起来很愚蠢,请原谅我!
我正在建立一个网站,一旦用户写了一个单词并点击“发送”按钮就会生成一个列表。 Php负责提取所需数据并将其作为列表返回到网页。
我的问题是我想在js函数中传递这些数据。我已经在StackOverflow上阅读了很多关于此问题的答案,这听起来就像我需要的回调函数。但是,我的js函数一直告诉我我的节点为空;似乎没有考虑从ajax返回的数据。
以下是我的代码的一些部分:
<script>
var xmlhttp;
function loadXMLDoc(cfunc){
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var us = document.getElementById("user").value;
var ur = document.getElementById("wiki").value;
xmlhttp.onreadystatechange = cfunc;
xmlhttp.open("GET","contributions_old.php?user="+us+"&wiki="+ur+"",true);
xmlhttp.send();
}
function myFunction() {
loadXMLDoc(function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("result").innerHTML=xmlhttp.responseText;
var parser = new DOMParser ();
var responseDoc = parser.parseFromString (xmlhttp.responseText, "text/html");
var text1 = responseDoc.getElementById('old1').value;
var text2 = responseDoc.getElementById('new1').value;
var dmp = new diff_match_patch();
dmp.Diff_Timeout = 0;
// No warmup loop since it risks triggering an 'unresponsive script' dialog
// in client-side JavaScript
var ms_start = (new Date()).getTime();
var d = dmp.diff_main(text1, text2, false);
var ms_end = (new Date()).getTime();
var ds = dmp.diff_prettyHtml(d);
document.getElementById('outputdiv').innerHTML = ds + '<BR>Time: ' + (ms_end - ms_start) / 1000 + 's';
}
});
}
</script>
当然,一旦用户输入了一个单词,它就会在我的网页底部调用myFunction()。 我还验证了我的网页,一旦生成了列表,就会将div为“new1”和“old1”作为id(它们是通过我的php代码生成的)。
任何帮助都会非常感激!我觉得我已经尝试了一切!
谢谢! :)
答案 0 :(得分:1)
强烈建议您使用jQuery或其他lib。
var url = "contributions_old.php?user=" + $("#user").val() + "&wiki=" + $("#wiki").val();
$.get(url);