在点击时动态添加输入,但有';这是一个循环


dynamically adding input on click but there's a while loop

我有一个形式中的while循环

<?php
        <select>
        while($select = $sql->fetchObject())
        {
        $name=$select->name;
        $alt = $select->alt;
        echo "<option value='".$alt."'>".$name."</option>";
        }
        </select>
?>
<div id='new_name'>Add Name</div>

我想知道如何使用jquery在点击时动态添加一个新的选择选项(与while循环中的选项相同),如果有php,我该怎么做?

谢谢大家!

PHP代码是在服务器端运行的,而jQuery是JavaScript,因此运行客户端,因此PHP代码不会影响jQuery。从服务器返回的只是一个纯HTML元素。因此,您可以使用jQuery的.clone()来复制select。

$('select').clone().appendTo('form');

由于你没有指定你想点击什么来添加复制的选择,我只举一个例子:

$("#my-id-to-click-on").click(function(){
    $('select').clone().appendTo('form');
});

注意由于我对表单和输入中使用的类或ID一无所知,这些示例使用非常通用的选择器,如果您的DOM中有多个表单或多个选择,这将成为一个问题。我建议您将ID或类添加到表单和选择中,并使用它们进行选择。这样一来,它将更加防弹。

您可能还需要添加if语句,以确保仅在第一次单击时复制select。如果这就是你希望它的行为。

您还可以:

  1. 使用PHP生成选择,禁用并隐藏它们,然后单击启用并显示
  2. 使用PHP和json_encode设置一个包含所有数据(名称-alt对)的javascript变量,然后单击使用变量内容生成带有javascript的HTML选择