【问题标题】:PHP Echo Function Won't Output into HTML Div with use of innerHTML使用 innerHTML 时,PHP Echo 函数不会输出到 HTML Div
【发布时间】:2011-01-25 00:15:32
【问题描述】:

这是 HTML/JS 代码:

<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()             {
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("dd123").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","externalphpcode.php?t=" + Math.random(),true);
xmlhttp.send();
}
window.onload=loadXMLDoc();
</script>

以及外部 PHP 代码:

<?php
header ('Location: urlofHTMLcode');

$con = mysql_connect("hostname","databasename","password");

if (!$con)
{
die('Test Error'.mysql_error());
}

$db_selected = mysql_select_db("databasename", $con);
if (!db_selected)
{
die("Error 3 : ".mysql_error());
}
$result= "SELECT COLUMN_1 FROM T_DEALS WHERE COLUMN_2 = '2011-01-03'
 and COLUMN_3 = 'VALUE_1'" or die ("Error 4 :".mysql_error());

$row = mysql_fetch_array($result);

echo $row;

mysql_close($con);
exit ();

这是我一直遇到的问题,为简洁起见,对大部分 HTML/JS 进行了编辑。我已经验证了 HTML/JS 文件通过更改 PHP 以插入到 mySQL 中准确地调用了外部 PHP 文件。我一直在尝试通过 PHP echo 命令与通过 AJAX 的“.responseText”命令配对,让 SQL 查询结果显示在指定的 DIV 容器中。我究竟做错了什么?在 HTML 中引用对象似乎没有问题,并且在调试 PHP/mySQL 连接时,错误消息将用适当的错误消息替换 DIV,一旦更改代码以调用 mySQL 数据,该错误消息就不会发生价值观。

提前谢谢你。

【问题讨论】:

    标签: mysql ajax echo innerhtml responsetext


    【解决方案1】:

    您没有在查询中调用 mysql_query,因此您的 $result 可能已经阅读了

     $result="String" Usless statement "String";
    

    通常您将 sql 存储在单独的字符串中,因此您将重写如下:

    $sql= "SELECT COLUMN_1 FROM T_DEALS WHERE COLUMN_2 = '2011-01-03' and COLUMN_3 = 'VALUE_1'";
    $result= mysql_query($sql);
    if(!$result) {die ("Error 4 :".mysql_error());}
    

    接下来 $row 变量是一个数组,您应该使用 for 循环单步执行或访问特定索引。您不能直接回显数组,您将得到的只是输出中的“数组”。

    for 循环类似于

     for $cell in $row{
     echo $cell;
     }
    

    最后在你发布的代码中你省略了最后的?>所以确保它确实存在于你的 php 代码中。

    另外,我真的建议您使用 jQuery 而不是您正在使用的计划 js,因为它在不同的浏览器上的错误会更少,如果您还没有听说过,本教程将帮助您入门 http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery

    【讨论】:

    • 我在php.net/manual/en/function.mysql-fetch-row.phpw3schools.com/PHP/php_mysql_select.asp 上看到这应该可以工作。即使我在 mySQL 中调用单个值,它也不会回显到 HTML 中。也许 responseText 与 echo 功能不匹配?
    • 好的 不知道我是怎么错过的,但这是最重要的。结果没有进行任何查询。 $result 应该存储 mysql_query() 的“结果”;因此将代码更改为: $result=mysql_query("SELECT COLUMN_1 FROM T_DEALS WHERE COLUMN_2 = '2011-01-03' and COLUMN_3 = 'VALUE_1'" or die ("Error 4 :".mysql_error()) );跨度>
    • 另外,看看您在上下文中的其他问题,我再次敦促您检查 jQuery,而不是尝试在所有项目中执行纯 Javascript。 jQuery 是一个 javascript 框架,但它可以更轻松地完成您一直在询问的事情,而且它可以做很多您不会想到使用普通 Js 的事情。
    • 我会尝试一下,一旦我可以让它回到我的开发机器上。非常感谢您的意见。 ...对于 jQuery 业务,我尝试学习这一点的速度很慢,因为我对任何 Web 开发都很陌生。我仍在尝试在基本层面上掌握 js 和 php。但你可能是非常正确的。这是要学习的另一件事,但从我所阅读的少量内容来看,它似乎非常有用。
    【解决方案2】:

    为了跟进,我终于找到了这个错误。似乎在我的 .php 调用函数中,我在标题中放置了一个限制正确输出的值。它与 .js 或 .php 语言无关。

    UserZer0,你是绝对正确的......当我回显 $row 它输出数组。但我终于得到了输出并且可以使用它。

    一千个谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多