Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2011, 16:35
Widrings
 
Fecha de Ingreso: enero-2011
Mensajes: 6
Antigüedad: 13 años, 4 meses
Puntos: 0
Jquery: Problema creando campo dinámico

Hola a todos!

Estoy realizando una página web para un proyecto que debo realizar. En una de las partes tengo un formulario (html + php) en el cual se quiere dar de alta un artículo de revista. Uno de los campos de dicho formulario es el autor del artículo. Para este menester he puesto un dropdown que contiene los nombres de los autores que tengo registrados en una tabla de la base de datos. Acompañando a este dropdown tengo un enlace "Más autores" que al pusarlo quiero que aparezca otro dropdrown, con los mismos datos de autores que aparecían en el original, y así sucesivamente para poder seleccionar todos los autores que necesite el usuario.

Para ello he utilizado un código en Jquery que he encontrado, pero no me acaba de funcionar.

Os lo adjunto:

Código:
jQuery.fn.generaNuevosCampos = function(etiqueta, nombreCampo, indice){
   $(this).each(function(){
      elem = $(this);
      elem.data("etiqueta",etiqueta);
      elem.data("nombreCampo",nombreCampo);
      elem.data("indice",indice);
      
      elem.click(function(e){
         e.preventDefault();
         elem = $(this);
         etiqueta = elem.data("etiqueta");
         nombreCampo = elem.data("nombreCampo");
         indice = elem.data("indice");
         texto_insertar = '<p>' + etiqueta + ':<br><div><select class="element select medium" name="'  + nombreCampo + indice + '"><? $consulta1=mysql_query("SELECT * FROM Investigadors");   echo "<option value='0' selected='selected'>Selecciona un investigador de la llista...</option>";
			while($registro1=mysql_fetch_array($consulta1))
	{
		echo '<option value="'.$registro1[Id].'">'.$registro1['Nom'].$registro1['Cognom'].'</option>';
	}
		echo "</select>";
?></select></p>';
         indice ++;
         elem.data("indice",indice);
         nuevo_campo = $(texto_insertar);
         elem.before(nuevo_campo);
      });
   });
   return this;
} 
$(document).ready(function(){
		$("#mascampos").generaNuevosCampos("Selecciona un investigador de la llista...", "compra", 2);
	});
Y este es la parte del formulario en cuestión afectada:

Código HTML:
 <li id="li_12" >
		<label class="description" for="element_12">Autors de l'article</label>
		<div>
		  <select class="element select medium" id="autors" name="autors">
		    <?
			$consulta1=mysql_query("SELECT * FROM Investigadors");
			?>
			<?
        echo "<option value='0' selected='selected'>Selecciona un investigador de la llista...</option>";
			while($registro1=mysql_fetch_array($consulta1))
	{
		//echo "Hola";
		echo '<option value="'.$registro1[Id].'">'.$registro1['Nom'].$registro1['Cognom'].'</option>';
		//echo "<option value='1'>Hola</option>";
		//{echo '<OPTION VALUE="'.$row[Nom].'">'.$row[Nom].'</OPTION>';}; 
	}
	echo "</select>";
	
?>
        	      </select>
                  <p>
                  <a href="#" id="mascampos">Más campos</a>
                  </p>
		</div> 
		</li> 
¡Desde ya muchísimas gracias por adelantado!