2011-06-11 132 views
0

我想雙擊鏈接自動填充兩個輸入元素。下面是我使用的代碼:使用數據庫條目自動填充HTML表單

<script> 

    function autoFill(depart_from, depart_to) { 
     document.getElementById('depart_from').value = depart_from; 
     document.getElementById('depart_to').value = depart_to; 
    } 

</script> 

這裏是鏈接:

...

echo "<tr class='odd'>"; 
echo "<td><span class='hover'><ahref='#'onClick='autoFill(" . $row['departure'] . ", " . $row['destination'] . "return false;'>" . $row['departure'] ." » ". $row['destination'] . "</a><span></td>"; 
echo "</tr>"; 

不能得到它的工作!我究竟做錯了什麼?

感謝名單!

回答

0

對於初學者來說,間距打破了你的錨標記:

<ahref='#'onClick='autoFill(

應該是:

<a href='#' onClick='autoFill(

此外,你永遠不會關閉該功能和獨立的語句以分號:

autoFill(" . $row['departure'] . ", " . $row['destination'] . "return false; 

應該是:

autoFill(" . $row['departure'] . ", " . $row['destination'] . ");return false; 

最後,你可能想在引號來包裝這些方法參數:

autoFill(" . $row['departure'] . ", " . $row['destination'] . ");return false; 

應該是:

autoFill('" . $row['departure'] . "', '" . $row['destination'] . "');return false; 

可能還有更多。要記住的一件事是嘗試不使用echo語句來發射大塊HTML。它使代碼不那麼容易閱讀,更重要的是它增加了另一層「字符串化」,這使得在字符串中引用引號稍微困難一些。

+2

將PHP變量傳遞給javascript的正確方法是使用'json_encode'。不''addslashes',不''htmlentities'(或'htmlspecialchars'),而且絕對不是什麼。 – Halcyon 2011-06-11 13:37:19

+0

@Frit van Campen:的確,OP的代碼還有很多工作要做。 – David 2011-06-11 13:39:29

+0

Thanx!我會嘗試一種不同的方法。必須有更乾淨的方式來做到這一點! – Ismailp 2011-06-11 14:06:06

0

您的a標籤上的間距錯了,您需要在a href之間有空格。

你永遠不會關閉括號內爲函數調用,我想你可能需要把參數引號,根據其類型:

autoFill('" . $row['departure'] . "', '" . $row['destination'] . "'); return false;'