所以,我有一個網格。如果用戶點擊輸入,gridbox會創建一行並加載用戶插入的數據。程序應該用這些數據運行一個mysql查詢,當用戶輸入時輸入。如何從ajax調用php返回值?
現在我有一個html
頁面,其中javascript
控制着網格框的操作。這js
被稱爲當用戶點擊進入:
<script type="text/javascript" >
var dbs=0;
var val=[];
function myFunction(e) {
if(e.keyCode == 13){
var newId = (new Date()).valueOf();
var value=gridbox.cells(1,0).getValue();
if(value.substring(0,5)=="JrLbl")
{
//the getfn(value) should returns the value of the mysql query
gridbox.addRow(newId,[value.substring(5,(value.indexOf(".")-4)),getfn(value)]);
}
val.push(value);
gridbox.cells(1,0).setValue('');
gridbox.editCell(1,0);
dbs=dbs+1;
}
}
function upload(){
var jsonString = JSON.stringify(val);
var jsonData = $.ajax({
type: "POST",
url: "upload.php",
data: { 'data' : jsonString},
dataType:"json",
async: false
}).responseText;
}
function getfn(str){
xmlhttp = new XMLHttpRequest();
var lblid= str.substring(str.indexOf(".")+6,str.length);
alert(lblid);
xmlhttp.open("GET","getfn.php?q="+lblid,true);
xmlhttp.send();
}
</script>
而且在getfn.php運行MySQL查詢:
<?php
header('Content-Type: text/html; charset=UTF-8');
require_once($_SERVER['DOCUMENT_ROOT']."globalfunctions/globalClasses.php");
require_once($_SERVER['DOCUMENT_ROOT'].'globalfunctions/GlobalParameters.php');
error_reporting (E_ALL^E_DEPRECATED);
$q = intval($_GET['q']);
$db_jira = new indotekDbConnection("jira");
$sql=mysql_query("SELECT FajlNev
from indoteklabels
where ID='$q'");
$FajlNev=mysql_fetch_row($sql);
return $FajlNev[0];
$db_jira->Close();
unset($db_jira);
?>
而且這又該何去何從標記位置
可能重複的[如何從異步調用返回響應?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-調用) – eisbehr
你可以在PHP中輸出所需輸出的echo語句,然後從你的函數返回它,如xmlhttp.responseText –
@JekinKalariya是I1ve試過了,它不起作用 – Daniel