2012-11-28 29 views
0

假設下面的簡單三個輸入表單。使用lat和lon的值,我需要運行一個PHP函數(已經寫好),它在sitename中創建我想要的值。目前的表單動作已經可以正常工作,並且完成了與我的問題完全不同的事情。使用表單值作爲PHP函數的輸入來動態填充第三個表單域

<form name="w3Balltrak" class="feedbackform" action="readyget.pl" method="post" 
<input type="text" id='lat' name='lat' value='' /> 
<input type="text" id='lon' name='lon' value='' /> 
<input type="text" id='sitename' name='sitename' value='' /> 
<input type="submit" value="Submit" /> 
</form> 

我的問題是我不知道如何將sitename的值設置爲我的PHP函數的輸出。該函數效果很好,在PHP中調用它會看起來像'getWX($ lat,$ lon)',並且返回將看起來像這個'MCI'。

如何在用戶在lon中輸入一個值之後立即使用sitename MCI的默認值,但在他在表單末尾點擊提交按鈕之前?

我希望我問得很好,讓別人理解並回答。

+1

聽起來像異步HTTP請求或Ajax的作業。你看過嗎? – Andrew

+1

是的,因爲andre表示使用$ .ajax函數並從lat和long字段的變化函數中調用它。 –

回答

0

據我理解你的問題..你的答案是AJAX

<script type="text/javascript"> 
// wait until the document ist ready.. otherwise the 2 ids dont exist in this moment 
jQuery(document).ready(function($){ 
    // on every change in the input fields send a request to the php 
    $('#lat, #lon').live('change', function(){ 
     $.get("test.php", { lat: $('#lat').val(), lon: $('#lon').val() }, 
      function(data){ 
      $('#sitename').val(data); 
     });    
    }); 
}); 
</script> 

,並在test.php的文件,然後

<?php 
// if the 2 fields are not empty ... join them and return the result 
if(!empty($_GET['lat']) && !empty($_GET['lon'])){ 
    $result = $_GET['lat'] . $_GET['lon']; 
} 
echo $result; 
?> 

$結果會是怎樣的jQuery函數收到
爲「數據」

+0

玩了一個小時左右後,我意識到我將需要更多的手握住。我已經安裝了Google的jQuery鏈接,將jQuery.get放入我的頁面中

0

如果您想在不提交表單的情況下與PHP通信,則需要使用ajax。你有沒有聽說過jQuery,它爲ajax查詢提供了一個方便的方法?

我基本上會追加一個事件處理程序要提防的latlon的變更,如果同時設置,通過Ajax請求的服務器端PHP腳本。

這對你有幫助嗎?