Php Ajax不起作用。输出未显示

Php Ajax不起作用。输出未显示,php,javascript,ajax,d3.js,tree-structure,Php,Javascript,Ajax,D3.js,Tree Structure,我在代码中使用ajax时遇到问题。它的工作原理是index.php将值传递给ajax.js,然后转到further.php。在further.php中,将生成一个树形图,并应显示在index.php页面的div中。这应该在我单击index.php上的“继续”时完成。但是,当我尝试此操作时,输出现在显示出来。div被赋予了一个边框,因此我看到div显示为空,而它应该具有来自further.php的树图。下面是该过程的前后图像,我单击“go further”从further.php获取图表 图1:i

我在代码中使用ajax时遇到问题。它的工作原理是index.php将值传递给ajax.js,然后转到further.php。在further.php中,将生成一个树形图,并应显示在index.php页面的div中。这应该在我单击index.php上的“继续”时完成。但是,当我尝试此操作时,输出现在显示出来。div被赋予了一个边框,因此我看到div显示为空,而它应该具有来自further.php的树图。下面是该过程的前后图像,我单击“go further”从further.php获取图表

图1:index.php,然后单击链接并调用ajax函数

图2:空的div屏幕截图(文本下方为“继续”)。空div上方的局部图是树的外观。调用ajax函数之后。空div,即数字1下方的边界区域,是further.js中的树形图应该显示的地方

图2中的图1,即图2中的文本:Go further下,是一个测试,以查看数据是否从index.html通过ajax.js成功传递到further.php。出现此图表示数据正在成功传递。但是所需的输出没有显示,div将变为空

我该如何解决这个问题


那么为什么在further.php的javascript代码中没有显示树形图呢?

问题到底出在哪里?只是ajax不起作用?我建议您花点时间学习jQuery,它对于处理ajax和许多其他javascript函数来说要简单得多。并开发一个测试例程来测试ajax响应;在尝试传递更复杂的函数生成的结果之前,请创建并确保传递了一个简单的字符串。并修复SQL注入问题


一行没有意义的代码:$row2['Pid'];这应该做什么?

为什么ajax不能在您的代码中工作。处理ajax响应的代码中有一个小错误

   function handleAjaxResponse()
{
    if (xmlhttp.readyState==4)
    {
        document.getElementById("output").innerHTML = xmlhttp.responseText;

    }else{
        document.getElementById("main").innerHTML = "";
    }
}
没有xmlhttp变量应在handleAjaxResponse方法中解析这是错误的原因。请参考下面的代码

xmlhttp.onreadystatechange=handleAjaxResponse(xmlhttp)


你所做的是难以置信的不安全。如果你还没有被黑客攻击过,你会被黑客攻击的。学习使用PDO或类似的预处理查询来避免SQL注入攻击。好的,我正在学习这样做。但这并不是我在这段代码中遇到的问题。相信我,这是你目前在代码中遇到的问题。我知道这是个问题,但我不认为这会阻止我的输出出现。因为我以前也使用过同样的方法,只是没有在树形图上使用,而且效果很好。我认为问题可能是由further.php中的javascript生成的树形图没有显示出来。如果查看该代码,您将看到树将被放置在further.php的#chart div中。我在further.php中所做的任何事情,包括添加文本或运行查询以检索和显示图像,都可以正常工作并成功显示,但javascript中生成的树除外;这是否也允许显示javascript图表。或者它只适用于文本和图像等?ajax所做的是从回调页面获取html并将其分配给变量(xmlhttp.responseText)。如果您想用该html制作javascript图表,请使用指定给您想要的html的变量。(xmlhttp.responseText)。
function handleAjaxResponse(xhr){
    console.log(xhr);   
}