回显 PHP 数据
echoing php data
在下面的代码中,我在php文件中回显了$strXML,该文件显示了整个$strXML但是我只想在javascript中显示"name"元素值。有人可以帮助我吗?
.PHP:
$strXML = '<? xml version="1.0" ?>'."'n";
$id = $_GET['id'];
$name = $_GET['name'];
$strXML .= '<data>'."'n";
$strXML .= '<id>'.$id.'</id>'."'n";
$strXML .= '<name>'.$name.'</name>'."'n";
$strXML .= '</data>'."'n";
echo $strXML;
JavaScript:
var xhr = createRequest();
function getData() {
if(xhr) {
var id = document.getElementById("id").value;
var name = document.getElementById("name").value;
var url = "search.php?id=" + id + "&name=" + name;
xhr.open("GET", url, true);
xhr.onreadystatechange = show;
xhr.send(null);
}
}
function show()
{
if ((xhr.readyState == 4) &&(xhr.status == 200))
{
var strXML = xhr.responseText;
alert(strXML);
}
}
responseText
属性是一个字符串(规范中的 DOMString,但这只是 JavaScript 中的一个String
),所以你不能对它调用getElementsByTagName
;你想看看xhr.responseXML
。
此外,getElementsByTagName
在调用它的元素下搜索:
将搜索指定元素下的子树,不包括元素本身。
因此,您必须直接访问内容,而不是在循环中访问内容:
var result = xhr.responseXML;
var id = result.getElementsByTagName('id' ).childNodes[0].nodeValue;
var name = result.getElementsByTagName('name').childNodes[0].nodeValue;
如果你想返回多个<data>
元素(因此,使用你的for
循环),那么你必须将PHP的返回值包装在一个元素中:
<results>
<data>
<id>$id</id>
<name>$name</name>
</data>
<!-- etc. -->
</results>
不是要批评你当前的决定,但我发现如果你使用 JSON 来回传输数据,使用 PHP 和 JavaScript 的组合要容易得多。PHP 有很好的方法来创建 JSON,而 JavaScript...嗯,它是JavaScript。我认为这通常会使开发变得容易得多:
<?php
$data = array(
'data' => array(
'id' => $_GET['id'],
'name' => $_GET['name']
)
);
echo json_encode( $data );
在JS方面:
var xhr = createRequest();
function getData() {
if(xhr) {
var id = document.getElementById("id").value;
var name = document.getElementById("name").value;
var url = "search.php?id=" + id + "&name=" + name;
xhr.open("GET", url, true);
xhr.onreadystatechange = show();
xhr.send(null);
}
}
function show()
{
if ((xhr.readyState == 4) &&(xhr.status == 200))
{
var response = eval('(' + xhr.responseText + ')');
alert( response.data.id );
}
}
当然,如果您已经在其他地方使用 XML(例如,在 Web 服务中,或使用 XSLT 来显示页面),XML 会更有意义。只是我的 0,02 美元。
相关文章:
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- 巨大的数据和PHP错误
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- json-ajax动画防止通过php发送数据
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 将数据保存到数据库(ajax/php)后,使文本字段变灰/禁用
- 为什么数据没有从ajax传递到php
- 如何将JavaScript变量的数据传递到另一个php页面
- 使用外部ajax数据PHP绘制图表
- IE不发送发布数据PHP&jQuery
- 如何将数据 php 更改为 javascript json
- 如何插入数据 PHP JavaScript MySQL 与多个数组
- 将数据PHP(客户端)传递给C#(服务器端)
- 跨会话保存数据- php
- 从AJAX调用操作数据:PHP或Javascript
- 如何在jQuery中获取数据- PHP中的多重标签选择
- Ajax显示动态数据php在html下拉
- 使用azax &获取数据;php