Javascript Can';t将数据从PHP传递到AJAX
我有一个html输入框。输入通过Javascript Can';t将数据从PHP传递到AJAX,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有一个html输入框。输入通过ajax搜索数据库,并在前端返回结果。问题是我没有从PHP得到结果。我不知道我做错了什么,所以我希望你们能更好地理解我 HTML PHP 及 现在的问题是如何操作js文件来处理返回数组。我试了一下,但没有成功: result = xmlDocumentElement.firstChild.data; if (result['found'] != null) { document.getElementById
ajax
搜索数据库,并在前端返回结果。问题是我没有从PHP得到结果。我不知道我做错了什么,所以我希望你们能更好地理解我
HTML
PHP
及
现在的问题是如何操作js文件来处理返回数组。我试了一下,但没有成功:
result = xmlDocumentElement.firstChild.data;
if (result['found'] != null) {
document.getElementById('Label-Result').innerHTML = result['msg'];
document.getElementById('UserNameSearchResult').innerHTML = result['found'];
$('#add-person-btn').removeAttr("disabled");
}
else {
document.getElementById('Label-Result').innerHTML = result['msg'];
}
**更新2工作JS**
我知道如何从PHP检索数据。
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
var result = JSON.parse(xmlDocumentElement.firstChild.data);
if (result['found'] != null) {
document.getElementById('Label-Result').innerHTML = result['msg'];
document.getElementById('UserNameSearchResult').innerHTML = result['found'];
$('#add-person-btn').removeAttr("disabled");
}
else {
document.getElementById('Label-Result').innerHTML = result['msg'];
}
现在所有的代码都工作了!非常感谢大家!
+向你们所有人致敬 四件事:
send(null)
的用法似乎不正确,只是不要在其中传递nullapplication/json
设置一个头,并使用json\u encode()
方法返回数据对于打印数组,您可以使用,也可以通过其他方式将数组转换为字符串。如果我们忽略了房间里的白象,而忽略了mysql_*函数的使用,那么使用一种稍微不同的方法
<?php
session_start();
define('DB_HOST', 'mysql6.000webhost.com');
define('DB_USER', '');
define('DB_PASSWORD', '');
define('DB_DATABASE', '');
$dom=new DOMDocument('1.0','utf-8');
$root=$dom->createElement('response');
$dom->appendChild( $root );
if( $_SERVER['REQUEST_METHOD']=='GET' && isset( $_GET['email'] ) ){
/* Basic filtering IF mysql_* functions are used! */
$email = trim( strip_tags( filter_input( INPUT_GET, 'email', FILTER_SANITIZE_EMAIL ) ) );
$conn = mysql_connect( DB_HOST, DB_USER, DB_PASSWORD );
mysql_select_db( DB_DATABASE, $conn ) or die('error: database connection failed');
/* By the looks of the original there should be no need for two queries and then an array lookup */
$result = mysql_query("SELECT `UserName` FROM `Users` WHERE `UserEmail` = '".$email."';");
/* If there are results, add nodes to the dom object */
if( mysql_num_rows( $result ) > 0 ){
while( $rs=mysql_fetch_object( $result ) ){
$root->appendChild( $dom->createElement( 'user', $rs->UserName ) );
}
} else {
/* Otherwise add error message */
$root->appendChild( $dom->createElement( 'error', 'We couldn\'t find any results!' ) );
}
}
/* Send the xml back to the js client */
header('Content-Type: text/xml');
$xml=$dom->saveXML();
$dom=null;
exit( $xml );
?>
saveXML();
$dom=null;
退出($xml);
?>
你不能用echo
…@Lipsyor打印数组,真的吗?正确的方法是什么?JSON?怎么做?好吧,但这无助于解决实际问题。但是谢谢!:)如果我理解,我使用echo-json\u-encode($returnRes)代码>在我的PHP中,但我如何处理js中的返回值?我想到了它,但我如何管理js中的数据?因为,如果你看到的话,我用它们来更新我的html文件。JSON在Javascript中非常容易处理。请参阅Yeap,但我不知道这些值是否正确地传递给$returnRes
。这取决于您定义为“正确”的内容以及应用程序固有的内容。老实说,我不知道我们可以如何帮助您:)您能在浏览器中调试xhr响应并告诉我们返回了什么吗?我想你现在是正确的印刷品了,非常感谢你。我发现PHP(正如您在我的更新中所看到的)问题在于如何在js中使用返回数据。
header('Content-Type: application/json');
if (in_array($email, $UserInfo)) {
$result = mysql_query("SELECT UserName FROM Users WHERE UserEmail = '".$email."'");
$row = mysql_fetch_row($result);
echo json_encode(array( 'found' => $row[0], 'msg' => "We found results"));
}
else {
echo json_encode(array( 'found' => null, 'msg' => "We couldn't find results"));
}
result = xmlDocumentElement.firstChild.data;
if (result['found'] != null) {
document.getElementById('Label-Result').innerHTML = result['msg'];
document.getElementById('UserNameSearchResult').innerHTML = result['found'];
$('#add-person-btn').removeAttr("disabled");
}
else {
document.getElementById('Label-Result').innerHTML = result['msg'];
}
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
var result = JSON.parse(xmlDocumentElement.firstChild.data);
if (result['found'] != null) {
document.getElementById('Label-Result').innerHTML = result['msg'];
document.getElementById('UserNameSearchResult').innerHTML = result['found'];
$('#add-person-btn').removeAttr("disabled");
}
else {
document.getElementById('Label-Result').innerHTML = result['msg'];
}
<?php
session_start();
define('DB_HOST', 'mysql6.000webhost.com');
define('DB_USER', '');
define('DB_PASSWORD', '');
define('DB_DATABASE', '');
$dom=new DOMDocument('1.0','utf-8');
$root=$dom->createElement('response');
$dom->appendChild( $root );
if( $_SERVER['REQUEST_METHOD']=='GET' && isset( $_GET['email'] ) ){
/* Basic filtering IF mysql_* functions are used! */
$email = trim( strip_tags( filter_input( INPUT_GET, 'email', FILTER_SANITIZE_EMAIL ) ) );
$conn = mysql_connect( DB_HOST, DB_USER, DB_PASSWORD );
mysql_select_db( DB_DATABASE, $conn ) or die('error: database connection failed');
/* By the looks of the original there should be no need for two queries and then an array lookup */
$result = mysql_query("SELECT `UserName` FROM `Users` WHERE `UserEmail` = '".$email."';");
/* If there are results, add nodes to the dom object */
if( mysql_num_rows( $result ) > 0 ){
while( $rs=mysql_fetch_object( $result ) ){
$root->appendChild( $dom->createElement( 'user', $rs->UserName ) );
}
} else {
/* Otherwise add error message */
$root->appendChild( $dom->createElement( 'error', 'We couldn\'t find any results!' ) );
}
}
/* Send the xml back to the js client */
header('Content-Type: text/xml');
$xml=$dom->saveXML();
$dom=null;
exit( $xml );
?>