2017-07-24 94 views
2

這是我創建的動態列表,我想將它傳遞給輸入值。 這是我的代碼。獲取動態文本的值將其傳遞給輸入值

<?php 
    $conn = mysqli_connect("localhost", "root", "","dbStudent"); 
    $query = mysqli_query($conn, "select * from tblaccounts"); 
    while ($row = mysqli_fetch_array($query)) 
    { 
    ?> 
    <ul> 
    <li onclick="GettingSurname" id="Surname"><?php echo $row["Lastname"]; ?></li> 
    </ul> 
    <?php 
    } 
    ?> 

它會顯示在輸入值,如果我點擊了姓。

<input type="text" name="username" id="username"> 

如果我選擇了姓氏,它會將它傳遞給輸入值。

<script type="text/javascript"> 
    function GettingSurname() 
    { 
     document.getElementById("username").value = Surname; 
    } 
</script> 
+1

你忘了'()''使用的onclick = 「GettingSurname()」' – Satpal

+0

你在哪裏定義'Surname',您正在使用在'GettingSurname()'函數中?順便說一句,你不應該在循環之前有'

    '而在循環之後有'
'?否則,您只需創建一個新列表,每個用戶只包含一個項目。 –

回答

1

假設你什麼的li文本內容傳遞作爲用戶名的文本,您需要將當前元素即this內聯事件處理程序。使用textContent屬性來設置值。

<li onclick="GettingSurname(this)"><?php echo $row["Lastname"]; ?></li> 

腳本

function GettingSurname(elem) 
{ 
    document.getElementById("username").value = elem.textContent; 
} 

注意:您用相同的ID id="Surname"創造元素,在HTML標識必須是唯一

1

你出現在while循環要創建行,所以這最終可能會創建具有相同ID(姓氏)的多行。相反,你可以只在傳遞名稱在這樣的函數中的參數:

<li onclick="GettingSurname('<?php echo json_encode($row["Lastname"]); ?>')"><?php echo $row["Lastname"]; ?></li> 

(請確保您編碼的功能參數的姓氏,以防萬一有人叫奧康納或者如果有人把XSS黑客作爲自己的姓氏)

然後在JavaScript這樣做:

function GettingSurname(surname){ 
document.getElementById("username").value = surname; 
} 
1

另一個和更更好的方式來達到同樣的目標是:

PHP:

<?php 
$conn = mysqli_connect("localhost", "root", "","dbStudent"); 
$query = mysqli_query($conn, "select * from tblaccounts"); 

//Take a counter variable to assign dynamic IDs to the HTML element iterated in the while loop 
$counter = 0; 
while ($row = mysqli_fetch_array($query)) 
{ 
    ?> 
    <ul> 
     <li onclick="GettingSurname('<?php echo $row["Lastname"]; ?>')" id="Surname_<?php echo $counter; ?>"> 
      <?php echo $row["Lastname"]; ?> 
     </li> 
    </ul> 
<?php 
    $counter++; 
} 
?> 

的Javascript:

<script type="text/javascript"> 
function GettingSurname(surname_value) 
{ 
    document.getElementById("username").value = surname_value; 
} 
</script> 
相關問題