2011-01-25 10 views
0

を使用したHTML本部への出力は、HTML/JSコードではないだろう。PHPエコー機能は、ここでinnerHTMLプロパティ

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

ありがとうございます。

答えて

2

あなたの$結果も同様に次のように書き換えますので、あなたは別々の文字列でSQLを保存通常

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

を読んだことがあるかもしれないので、あなたがあなたのクエリにするmysql_queryを呼び出していませんでした:

$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());} 

次に$行varはforループをステップスルーするか、特定のインデックスにアクセスする配列です。あなたはエコーアレイを直接行うことはできません。出力には配列だけがあります。 forループ

ザ・あなたは、あなたが最終ommited投稿コードでfinnally

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

のようなものとなるでしょうか?>それはあなたのPHPコードであり、実際にあることを確認します。

また、私はあなたがそれについて聞いたことがない場合は、http://docs.jquery.com/Tutorials:Getting_Started_with_jQueryを起動するようになるでしょう、別のブラウザではバギーが少なくなるので、あなたが使用しているプラ​​ンjの代わりにjQueryを使用することを本当にお勧めします。

+0

私はhttp://php.net/manual/en/function.mysql-fetch-row.phpとhttp://www.w3schools.com/PHP/php_mysql_select.aspでこれがうまくいくはずです。私がmySQLで単一の値を呼び出しても、HTMLにエコーされません。多分responseTextはエコー機能でうまく動かないでしょうか? – user567623

+0

オッケー私はこれを逃したのか分かりませんが、ここには大きなものがあります。結果はクエリを作成しませんでした。 $ resultはmysql_query()の "result"を格納する必要があります。 $ result = mysql_query( "COLUMN_2 = '2011-01-03' とCOLUMN_3 = 'VALUE_1'"を選択するか死ぬ( "エラー4":mysql_error())); – UserZer0

+0

また、これに関連してあなたの他の質問を見て、私は再び、あなたのすべてのプロジェクトでプレーンなJavascriptをやろうとするのではなく、jQueryをチェックアウトするように強く勧めます。jQueryは、javascriptのフレームワークですが、あなたが尋ねてきたことを実行する方法がはるかに簡単です。さらに、プレーンなJを使用することについて考えないことがたくさんあります。 – UserZer0

0

フォローアップするには、私は間違いなくバグを見つけました。私の.phpコール関数のように見えますが、ヘッダーに適切な出力を制限していた値を入れました。それは.jsや.php言語とは関係がありませんでした。

UserZer0、あなたは本当に正しいです...私が$行をエコーすると、配列を出力します。しかし、私は最終的にアウトプットを得ています。

ありがとうございました!