MySQLに格納されているパラメータでJavaScript関数を呼び出したいとします。これはすべてonClickイベントで発生しています。ここでJavaScriptのPHPの同期の問題
はjavascriptのコードです:だから
function getFile() {
if (window.XMLHttpRequest) {
AJAX=new XMLHttpRequest();
} else {
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
}
if (AJAX) {
AJAX.open("POST", "gmap.php", false);
AJAX.send("searchField=" + searchField.value);
return load(AJAX.responseText);
} else {
return false;
}
}
、gmap.phpはjavascriptのロード機能のパラメータをエコーされます。しかし、関数はgmap.phpのMySQLクエリが実行される前に呼び出されるため、パラメータはロードされません。私は同期と非同期AJAXを試してみました。 PHPからjavascript関数を呼び出そうとすると、onClickイベントで呼び出されるため実行されません。これはdiv内にあります。 助けてください、私は今一週間以上これをやっています。私はすべてを試しました。ここで
は、MySQLのクエリとPHPのコードです:
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_internal_encoding('UTF-8');
$a = $_POST['searchField'];
$dbhost = "localhost";
$dbuser = "*******";
$dbpass = "*******";
$dbname = "citydb";
//connect sql
mysql_connect($dbhost, $dbuser, $dbpass);
//select db
mysql_select_db($dbname) or die(mysql_error());
//retrieve data
//$city=$_GET['city'];
//escape user input to help prevent SQL injection
//$city=mysql_real_escape_string($city);
//query
mysql_query('SET CHARACTER SET utf8');
$result=mysql_query("SELECT citystart, cityend FROM cityids WHERE city='$a' ");
if(!result) {
die("Database query failed: " . myql_error());
}
while($row=mysql_fetch_array($result)) {
$lat=$row['citystart'];
$lng=$row['cityend'];
}
echo $lat;
echo ", ";
echo $lng;
?>
は、アラートを使用してみましたDIDテストしている()の代わりに、あなたのAjaxのもののためのロード() –
使用のjQueryの。あなたと将来あなたのコードを扱う人は、AJAXをカプセル化していないライブラリを使わずにAJAXをやっていることを嫌に思うでしょう。 – ThiefMaster
@ThiefMaster:なぜですか? jQueryを使用すると、他のフレームワークと衝突する可能性があります.MooToolsは私の経験上、本当に正当な理由なくJSフレームワークを使用することを嫌う理由と、AJAXを書くことは非常に簡単です。 –