xmlhttp.responseText;返回整个页面的html结果,而不只是列表选项?

问题描述 投票:0回答:2

我有一个用于管理研讨会的joomla组件。

在编辑视图中,除其他字段外,我还有3个选择列表:

  1. 主题列表
  2. 级别列表
  3. 兑现货币

我正在尝试根据主题列表选项中选择的内容填充级别列表选项。

因此,在主题列表onchange中,我已添加了对包含AJAX请求的.js文件的调用:

var xmlhttp;

function listUpdate(str)
{
if (str=="")
{
    document.getElementById("jform_work_topic_level_idfk").innerHTML="";
    return;
}
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
    alert("Browser does not support HTTP Request");
    return;
}
var url = document.URL+"&tid="+str;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
             document.getElementById("jform_work_topic_level_idfk").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
    // code for IE6, IE5
    return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}

它工作正常,并且根据在主题列表中选择的内容,使用所需的值填充级别列表选项。问题在于,级别列表不仅填充了该选项,而且还包含了主题列表和奖励货币的选项。

我认为是因为xmlhttp.open(“ GET”,url,true);正在请求生成整个表单html和xmlhttp.responseText的url;返回整个html页面代码。如何只检索级别列表的选项?

非常感谢!

php javascript mysql ajax joomla
2个回答
0
投票

关于检索特定的AJAX数据,您有两个选择。

您可以向服务器发送请求以仅获取某些值,然后让服务器端脚本将其拆分。例如,您可以加载带有GET参数的页面,并告诉PHP或CGI脚本过滤掉?stuff=a无关的内容。这可能是最快,最安全的方法。

您的第二个选择是在收到请求时立即在客户端将其过滤掉,尽管这比较慢且风险更大。

如果我误解了您的问题,表示歉意。


0
投票

我的英语不太好,请尝试理解。我在asp.net中遇到了同样的问题。如果您有服务器页面(aspx.cs),则从源(.aspx)中删除整个html内容,仅应在后面的代码中编写服务器端代码。我尝试通过屏幕截图向您展示我的代码。我的javascript和html代码用静态页面和服务器端的html页面编写“ .aspx.cs”页面中编写的代码,没有“ .aspx”页面中编写的html内容,只有第1行是源代码。($_GET["stuff"] == "a")this is .aspx file means source code以及最后一个this is server page

© www.soinside.com 2019 - 2024. All rights reserved.