在点击时动态添加输入但是有一个while循环

时间:2012-01-11 08:11:04

标签: php jquery jquery-ui dynamic

我在表单中有一个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循环的相同选项),如果theres php我该如何做这样的事情?

非常感谢!

2 个答案:

答案 0 :(得分:4)

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

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

由于您未指定要单击的内容以添加复制的选择,因此我将仅举例说明它的外观:

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

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

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

答案 1 :(得分:1)

你也可以:

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