Foros del Web » Programando para Internet » Javascript »

cambiar nombre de inputs de un div clonado

Estas en el tema de cambiar nombre de inputs de un div clonado en el foro de Javascript en Foros del Web. Hola tengo este código: (document).ready(function(){ $('#empleadosR').change(function() { var contador = $(this).val(), nuevosDiv = $('#detalles'); n = $('div #detalles').length; resta= n - contador; restaDos= contador - ...
  #1 (permalink)  
Antiguo 30/01/2012, 20:00
Avatar de lgza70  
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 2 meses
Puntos: 1
Pregunta cambiar nombre de inputs de un div clonado

Hola

tengo este código:

(document).ready(function(){

$('#empleadosR').change(function() {


var contador = $(this).val(),

nuevosDiv = $('#detalles');
n = $('div #detalles').length;
resta= n - contador;
restaDos= contador - n;

if(n > contador) {
for (var i = 0; i < resta; i++) {
$('#clones div:last').remove()
}

}

else {

for (var i = 0; i < restaDos; i++) {

nuevosDiv.clone().insertAfter(nuevosDiv);
}
}

});


});


Y el el html:

<label for="cantEmpleados">Cantidad de Personal:</label>
<select id="empleadosR" name="empleadosR">
<option value="" selected="selected"> - Selecciona -</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select><br/>
<div id="clones">
<div id="detalles">
<label for="puesto">Puesto</label>
<textarea name="puestoR"></textarea>
<label for="sueldo">Sueldo Nominal</label>
<input type="text" name="sueldoR" placeholder="Sueldo Nominal"><br/>
</div>
</div>


El problema que tengo es que cuando mando el formulario a un correo con php, no me manda todos los datos por que como tiene divs clonados, los input tienen el mismo nombre...

¿Cómo le puedo cambiar los nombres a los inputs de los divs clonados para que me mande todos los datos?

Espero me puedan ayudar.

Muchas Gracias!
  #2 (permalink)  
Antiguo 31/01/2012, 08:12
Avatar de alguienmas  
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 14 años, 11 meses
Puntos: 8
Respuesta: cambiar nombre de inputs de un div clonado

creo que es mejor que le agregues [ ] a los nombre de los campos, asi cuando lo recibas en php seran dos array uno con los puestos y otro con los sueldos... por ejemplo

Código HTML:
<label for="cantEmpleados">Cantidad de Personal:</label>
<select id="empleadosR" name="empleadosR">
    <option value="" selected="selected"> - Selecciona -</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select><br/>
<div id="clones">
   <div id="detalles">
      <label for="puesto">Puesto</label>
      <textarea name="puestoR[]"></textarea>
      <label for="sueldo">Sueldo Nominal</label>
      <input type="text" name="sueldoR[]" placeholder="Sueldo Nominal"><br/>
   </div>
</div> 
y en php lo recibes asi

Código PHP:
// este es un array con todos los sueldos q allas enviado
$sueldo $_REQUEST['sueldoR'] ;
$puesto $_REQUEST['puestoR'] ; 
espero te sirva. Saludos.
  #3 (permalink)  
Antiguo 31/01/2012, 10:43
Avatar de lgza70  
Fecha de Ingreso: febrero-2011
Mensajes: 29
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: cambiar nombre de inputs de un div clonado

Aun que, ahí me los mandaría todos juntos no?
todos los sueldos juntos y los puestos juntos....

Yo necesito el puesto con su sueldo, después el segundo puesto con su sueldo y así sucesivamente.
  #4 (permalink)  
Antiguo 31/01/2012, 14:28
Avatar de alguienmas  
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 14 años, 11 meses
Puntos: 8
Respuesta: cambiar nombre de inputs de un div clonado

Código PHP:
$sueldo $_REQUEST['sueldoR'] ;
$puesto $_REQUEST['puestoR'] ; 
$puestoConSueldo = array();
foreach(
$puesto as $key => $valor)
       
$puestoConSueldo[count($puestoConSueldo)] = {$puestoConSueldo$sueldo[$key]}; 
eso te dejara en el formato que buscas

Etiquetas: formulario, html, input, inputs, nombre, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:31.