2012-11-02 34 views
2

我是一個相對的新手和解決的AJAX編碼問題一直不成功,所以我想我會提交此爲您的專家幫助:直接將一個PHP變量到AJAX腳本,而不需要表單提交

當前設置:(提交的表單AJAX腳本日期值)

選擇的值(這是一個日期)從下拉列表的形式通過其在同一頁面上調用一個Ajax腳本onchange事件提交的主頁上然後將該值傳遞給一個單獨的PHP文件(getuser.php)。 Getuser.php獲取此日期值以從MySQL數據庫中返回顯示在表中的信息。隨後,getuser.php中的表格將作爲JavaScript「滑翔機」的一部分顯示在div標籤(tab1)的主頁面中。這在目前的形式下工作正常,但這不是我最終想要完成的。

所需的設定:(傳遞給Ajax的腳本從預定義的PHP變量上主頁加載,而不是從形式日期值)

上的裝入主頁,所需的日期值已被分配給一個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變量$ mydat當前的日期已經被設置在主要頁面加載e,所以表單不是必需的。

輔助頁面getuser.php獲取傳遞的URL($ q = $ _ GET [「q」];)的值,並使用它顯示錶中MySQL數據庫的信息。

<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多種變化:此表在單獨的JavaScript「滑翔機」的形式顯示背面的主網頁在一個div標籤(標籤1)直接放到AJAX腳本中,繞過表單併爲它自動執行上面的功能,但沒有任何效果。這可能是一個簡單的答案,它可能只是句法。

+0

如果你已經在PHP中的價值,爲什麼使用AJAX來獲取價值,而不僅僅是用PHP檢索它直接加載表格加載時的頁面? – NightHawk

回答

1

你爲什麼不嘗試這樣的事情在你的PHP文件

<script type="text/JavaScript"> 
showuser("<?php echo $mydate ?>"); 
</script>