注册 登录
编程论坛 PHP技术论坛

想省去那个讨厌的确认键,怎么做?

kai 发布于 2007-06-04 19:36, 1372 次点击
我碰到一个问题,具体来讲把,看一下这里,我的个人主页里面的一个页面 http://www.kaisoftworld.de/music.php
我用一个dropdown box 做了一个音乐表单,现在的做法是点击歌曲名,然后点击那个选择按钮,然后播放器的音乐地址就会更新了。 但是我觉得那个确认键很讨厌,又没有可能不用那个确认键?
9 回复
#2
rainic2007-06-05 07:37
用JS提交表单不就可以了吗???
#3
lmhllr2007-06-05 12:06
呵呵...
#4
kai2007-06-05 13:49
rainic,
感觉不行,我那个音乐播放器是动态产生的。

我现在的做法是: 按下确认键 -> 通过get 方法得到选择 ->通过一个switch 确定相应的歌曲地址 -> 然后更新音乐播放器的歌曲地址值。
#5
rainic2007-06-05 22:41

用JS可以省去"按下确认键"的操作

比如简单点的..先把"确认键"的Style那设为隐藏.
当列表框的选项被选中时,就执行 确认键ID.Click();

#6
kai2007-06-06 17:11
rainic,
在我的主页里www.kaisoftworld.de 我提供了语言选择。我现在的做法是事先做好某个页面的三个版本,比如首页的三个版本就是index.php, homeEn.php, homeCh.php. 当使用者选择一个语言选项时,通过javascript 事先写好的函数,分别jump to 相应的页面,也就是说如果你选择中文,那么就转到homeCh.php.

我觉得这样做的方式不好,要做太多的准备工作。我想真正实现语言切换,也就是动态的语言切换,而不是调用不同的页面。我的想法是,将那些页面内容放入数据库,当用户选择语言后(我不想要那个确认键), 通过php 建立数据库联系,动态的生成页面,也就是说首页就是index.php, 没有homeEn.php, homeCh.php了. index.php中的内容是根据语言选择而动态产生的。我现在的困难就是如果要省去那个确认键,那么只有用javascript 来写函数,而用javascript 写函数又无法与服务器端相关,从而对数据库进行沟通,从而动态的生成页面。如果使用php, 又无法免去那个确认键。

想问问你,你有什么解决的方案。
#7
kai2007-06-06 17:26
rainic,
看了你的个人网站,考虑的很全面,做的很到位。
#8
rainic2007-06-06 19:19
回复:(kai)rainic,看了你的个人网站,考虑的很全面...

谢谢...

<script language="javascript">
function GotoURL(){
var objSelect = document.getElementById("select");
if (objSelect.value != "")
window.location = objSelect.value;
}
</script>
<select name="select" id="select" onchange="GotoURL()">
<option value="">select, please</option>
<option value="https://www.bc-cn.net">bc-cn</option>
<option value="http://www.abc.com">abc.com</option>
<option value="http://www.hi.cn">hi.cn</option>
</select>
选中项改变就会转到目标网址

#9
kai2007-06-07 02:31
rainic,
你没有理解我的意思,我事实上就是这么做的。如果你看我的网页的源代码你就知道了。我将片断代码贴在下面:

<script src="changeLanguage.js" type="text/javascript"></script>
<form name="jumpto" id="jumpto">
<select name="language" size="1"
onChange="changeLanguage(jumpto)">

<option value="">Choose language</option>
<option value="homeCh.php">中文</option>
<option value="homeEn.php">English</option>
<option value="index.php" selected>Deutsch</option>
</select>
</form>

下面是那个changeLanguage.js 的代码:
function changeLanguage (form)
{
if(form)
{
var optionValue = form.language.options[form.language.selectedIndex].value;
if(optionValue != "")
{
window.location = optionValue;
}
}
}

就像我在六楼里说的,这样做我其实为一个页面准备了三个页面,选择语言只是这几个页面之间的切换而已。
而我的本意不是这样的,我想让它只有一个页面,通过GET 或者 POST 得到语言选择,然后根据选择动态从数据库
中产生页面,而如果这样做,那个submit button 就免不了了。这是我的困惑。请考虑考虑,你有什么解决办法。

#10
rainic2007-06-08 00:11
可以改成

<option value="index.php?language=zh">中文</option>
<option value="index.php?language=en">English</option>
<option value="index.php?language=de" selected>Deutsch</option>

这样的嘛

根据language就知道要取什么语言的了
1