2017-02-24 9 views
-1

私はからファイルにパラメータを渡すためにしようと、ファイルで私のWhere句にパラメータを使用し、バック呼び出しページに結果をエコーし​​ています。何も返されず、問題がまたはにあるかどうかはわかりません。JavaScriptをPHPにパラメータを渡すためにクエリの実行

これは私が
PHP

$state = $_POST['state']; 

$con = mssql_connect('Server','userid','pwd') 
    or die('Could not connect to the server!'); 

mssql_select_db('Partner') 
    or die('Could not select a database.'); 

$SQL = "SELECT * FROM [Table] WHERE [state] = '". $state. "'"; 

$result = mssql_query($SQL) or die('A error occured: ' . mysql_error()); 

echo $result 

持っているもののJavaScriptである(少なくとも関連部分)のphpファイルまたはいずれかに変更する必要がどのような

var name="TX" 
xhr.open("GET", "Test.php?state="+name, true); 

これは正しく値を返しますか?私がSSMSで文字列を正しく実行しているかのように、が有効です。私はそう

xhr.onreadystatechange = function(){ if (xhr.readyState == 4 && xhr.status==200) 
{ document.getElementById("response").innerHTML = xhr.responseText; } } 
+0

"何も返されません" - 返されるものはどのようにテストしていますか? – Quentin

+0

"結果を呼び出しページにエコーします" - これを行うコードはどこにありますか? – Quentin

+0

'mssql_query'&' mysql_error' - 'mysql_'ライブラリで' mssql_'エラーを受け取ることはできません。データベースライブラリを混在させないでください。 – Quentin

答えて

0

あなたは間違ったグローバルパラメータを参照しているようなレスポンスを読んでいます

EDIT(はい、それは2桁の状態は、データベースに格納されています)。あなたのXHRコールが "GET"リクエストを指定していますが、$_POSTをチェックしています。

これを試してみてください:$state = $_GET['state'];

+0

それはまさにそれでした!これを指摘してくれてありがとう! –

-1

まずあなたは$ _POST要求が、$ _GETを使用するべきではありません。

次に、echoを使用してもjavascriptで結果が返されません。より良い保護のためには、jsonエンコーディングを使用することが最善の方法です。あなたがあなたのクエリ結果が配列であり、単にエコーから読み取ることができないので、エコーprint_rを使用してはならないPHPを通して、あなたのデータを表示したい場合でも

print_r($result) //replace echo 

+0

エコーは結果をjavascriptで返します。私はそれを頻繁に使う –

関連する問題