我是一名相对新手并且未能成功解决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标签(选项卡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脚本中,并使其自动运行,但没有任何效果。对此可能有一个简单的答案,它可能只是语法上的。
答案 0 :(得分:1)
为什么不在PHP文件中尝试这样的东西
<script type="text/JavaScript">
showuser("<?php echo $mydate ?>");
</script>