0

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 の多くが編集されています。PHP を変更して mySQL に挿入することにより、HTML/JS ファイルが外部 PHP ファイルを正確に呼び出していることを確認しました。AJAX経由で「.responseText」コマンドと組み合わせたPHP echoコマンドを使用して、指定されたDIVコンテナに表示するSQLクエリの結果を取得しようとしています。私は何を間違っていますか?HTML で参照するオブジェクトに問題はないようです。また、PHP/mySQL 接続をデバッグすると、エラー メッセージが DIV を適切なエラー メッセージに置き換えますが、コードが変更されて mySQL データを呼び出すと、エラー メッセージは発生しません値。

前もって感謝します。

4

2 に答える 2

2

クエリで 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 コードに実際にあることを確認してください。

また、使用しているプラ​​ン js の代わりに jQuery を使用することを強くお勧めします。さまざまなブラウザーでのバグが少ないためです。聞いたことがありません。

于 2011-01-25T00:23:33.630 に答える
0

フォローアップするために、私は最終的にバグを見つけました。私の .php 呼び出し関数で、適切な出力を制限していたヘッダーに値を入れたようです。.js や .php 言語とは何の関係もありませんでした。

UserZer0、あなたは絶対に正しかった... $row をエコーすると、配列が出力されます。しかし、私は最終的に出力を取得しており、それで作業できます。

千枚ありがとうございます!

于 2011-01-29T01:31:37.927 に答える