我是一个相对新手,在解决 AJAX 编码问题方面没有成功,所以我想我会提交这个以寻求专家的帮助:
当前设置:(表单提交给 AJAX 脚本的日期值)
选定的值(即日期)通过 onchange 事件从主页上的下拉表单提交,该事件调用同一页面上的 Ajax 脚本,然后将值传递给单独的 PHP 文件 (getuser.php)。Getuser.php 获取此日期值以从 MySQL 数据库中返回信息,将其显示在表中。getuser.php 中的表格随后作为 JavaScript“滑翔机”的一部分显示在主页上的 div 标签 (tab1) 中。这在目前的形式下运行良好,但这不是我最终想要完成的。
所需设置:(在主页加载时从预定义的 PHP 变量传递给 Ajax 脚本的日期值,而不是来自表单)
在加载主页时,所需的日期值已经分配给 PHP 变量 ($mydate),因此不需要单独选择日期的表单或传递此选定的表单日期。所需要做的就是在页面加载时自动将 PHP 变量 $mydate 传递给 AJAX 脚本,该脚本应该将此值合并到 URL 中并自动将其发送到 getuser.php(在主页加载时),而无需通过用户定义的表单选择。
这是主页上当前的 AJAX 脚本(通过表单提交方法可以正常工作):
<script type="text/JavaScript">
function showUser(str)
{
if (str=="")
{
document.getElementById("tab1").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("tab1").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
这是当前选择日期并将其传递给 AJAX 脚本的主页上的当前表单..:
<form>
<SELECT NAME="" onchange="showUser(this.value)">
<option value="">Select a date:</option>
<option value="2012-09-26">2012-09-26</option>
<option value="2012-09-25">2012-09-25</option>
<option value="2012-09-07">2012-09-07</option>
<option value="2012-09-08">2012-09-08</option>
<option value="2012-08-01">2012-08-01</option>
<option value="2012-08-04">2012-08-04</option>
</SELECT>
</form>
..但是当前日期已经在 php 变量 $mydate 中的主页加载中设置,因此不需要该表单。
辅助页面 getuser.php 获取传递的 URL 的值 ($q=$_GET["q"];) 并使用它在表中显示来自 MySQL 数据库的信息。该表格以单独的 JavaScript“滑翔机”的形式显示在主页上的 div 标签(Tab 1)中:
<div id="glider"><div class="controls">
<a href="#tab1">Tab 1</a> |
<a href="#tab2">Tab 2</a> |
<a href="#tab3">Tab 3</a> |
<a href="#tab4">Tab 4</a></div>
<div class="scroller"><div class="content">
<div class="section" id="tab1">Tab 1</div>
<div class="section" id="tab2">Tab 2</div>
<div class="section" id="tab3"><img src=" "
/></div>
<div class="section" id="tab4">Tab 4</div>
</div></div></div>
<script type="text/JavaScript" charset="utf-8">
new Glider('glider');
</script>
我已经尝试了 AJAX 脚本代码的多种变体,试图绕过表单将 $mydate 直接放入 AJAX 脚本中,并使其按照上述方式自动运行,但没有任何效果。这可能有一个简单的答案,它可能只是句法上的。