我有一些选择菜单,我想用我的PHP脚本中的json填充(每个选择菜单根据其他选择菜单的内容显示不同的值)。 我知道如何清除并填充js中的选择菜单,只要我有一个数组可以使用。问题是我不知道如何使用ajax调用来检索javascript的数组或json来填充选择菜单。
我不想使用jquery,因为它对于这样一个简单的任务来说太大了。
我很感激有关此事的任何意见。
我填写菜单的测试脚本:
var sl = document.getElementById(foo);
sl.options.length = 0;
for(var i=0;i<100;i++){
sl.options[i] = new Option(i + "Option text", i+"optionValue");
}
谢谢。
答案 0 :(得分:2)
Zepto是jQuery的轻量级实现,它具有JQ ajax支持,它非常小,可以为您节省大量时间。
答案 1 :(得分:1)
如果您可以控制PHP脚本,那么最简单的(本机)方式是使用JSON-P。
在服务器上:
<?php
$callback = $_GET['callback'];
$json = json_encode($data);
print $callback . '(' . $json . ');';
?>
并在客户端:
<script>
function getJSON() {
var script = document.createElement('script');
script.src = 'http://mysite.com/page.php?callback=updateSelect';
document.getElementsByTagName('head')[0].appendChild(script);
}
function updateSelect(json) {
// do stuff with your JSON object
}
getJSON();
</script>
这会向您的远程页面发出基本的GET请求;页面打印包含在您提供的回调名称中的编码JSON,在这种情况下,立即调用updateSelect
方法,传入JSON对象。
答案 2 :(得分:1)
如果我正确理解你的问题,你正在寻找向服务器发送请求,并以json格式返回一些数据,而不使用jQuery(并且可能 - 不使用任何其他库)。
嗯,非常容易......欢迎来到2000年,在'原型','jQuery'和其他库发明之前,以及'Ajax'一词被创造出来之前(虽然范式已经在使用)。 / p>
<script type="text/javascript"
src="http://blogname.blogspot.com/feeds/posts/default?alt=json-in-script&callback=myFunc"
></script>
查看此网址(它会从Google的博客帖子中返回最近的帖子)。请注意,所有内容都嵌入在函数myFunc的调用中,作为参数传递。
您可以在代码中嵌入<script>
元素,也可以使用document.write
动态生成它,或者甚至可以使用DOM操作将元素添加到SCRIPT类型的元素中。