Foros del Web » Programando para Internet » Javascript » Frameworks JS »

enviar n datos mediante ajax

Estas en el tema de enviar n datos mediante ajax en el foro de Frameworks JS en Foros del Web. hola amigos como hago para enviar n datos mediante ajax inicialmente estoy enviando 8 datos pero en otra parte del formulario cargo n inputs n ...
  #1 (permalink)  
Antiguo 15/06/2012, 18:04
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
enviar n datos mediante ajax

hola amigos


como hago para enviar n datos mediante ajax

inicialmente estoy enviando 8 datos pero en otra parte del formulario cargo n inputs n ya que se generan dependiento de los numero registros de una consulta

como hago para enviar los 8 datos mas lo que toque enviar

este es mi codigo ajaz

$.ajax({
url:'archivo.php',
type:'POST',
data:{"name":namec,"email":emailc,"telefono1":tele fono1c,"telefono2":telefono2c,"fax":faxc,"web":web c,"categoria":categoriac,"comentario":comentario c}
}).done(function() {
cargar_usuarios();

})



Código PHP:
Ver original
  1. <form id="insert" >
  2.     <fieldset>
  3.         <label for="name">Nombre</label>
  4.         <input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all" />
  5.         <label for="email">Email</label>
  6.         <input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" />
  7.         <label for="telefono1">Telefono 1</label>
  8.         <input type="text" name="telefono1" id="telefono1" value="" class="text ui-widget-content ui-corner-all" />
  9.         <label for="telefono2">Telefono 2</label>
  10.         <input type="text" name="telefono2" id="telefono2" value="" class="text ui-widget-content ui-corner-all" />
  11.         <label for="fax">Fax</label>
  12.         <input type="text" name="fax" id="fax" value="" class="text ui-widget-content ui-corner-all" />
  13.         <label for="web">Web</label>
  14.         <input type="text" name="web" id="web" value="" class="text ui-widget-content ui-corner-all" />
  15.         <label for="speedC">Categoria</label>
  16.         <p>
  17.           <select name="categoria" id="categoria">
  18.             <option value="1">Seleccione...</option>
  19.             <?php
  20.                         foreach($fc as $field)
  21.                         {
  22.                             echo "<option value='$field[nombre_cat]'>$field[nombre_cat]</option>";
  23.                         }
  24.                     ?>
  25.             </select>
  26.         </p>
  27.         <p>&nbsp; </p>
  28.         <label for="publicaciones">Publicaciones</label>
  29.         </br>
  30.         </br>
  31.         <?
  32.         $volcan=0;
  33.         foreach($fp as $field)
  34.         {
  35.         if($volcan != $field['cod_volcan']) {?>
  36.        
  37.        
  38.        
  39.         <table width="400" border="0">
  40.   <tr>
  41.     <td colspan="2"><div align="center"><? echo $field['nom_volcan']; ?></div></td>
  42.   </tr>
  43.   <?
  44.        
  45.              $volcan = $field['cod_volcan'];
  46.             }?>
  47.   <tr>
  48.     <td width="95%"><? echo $field['nom_publicacion'];?>
  49.     <td width="5%"><div class="ui-checkbox">
  50.         <input type="checkbox" id="theid" />
  51.            </div></td>
  52.   </tr>
  53.  
  54.         <?
  55.         }
  56.         ?> 
  57.        
  58.         </table>
  59.             <br>
  60.             <br>
  61.         <label for="observaciones">Comentario</label>
  62.         <textarea name="comentario" id="comentario" cols="42" rows="3" class="required ui-widget ui-widget-content ui-corner-all"></textarea>
  63.     </fieldset>
  64.     </form>

Última edición por Montes28; 15/06/2012 a las 18:15
  #2 (permalink)  
Antiguo 15/06/2012, 19:18
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: enviar n datos mediante ajax

Introduce todos los elementos en un elemento padre y haz un for que recorra la longitud de tal elemento introduciendo los campos

<div id="padre">
<input type="text" campo="campo1" id="a" value="asd">
<input type="text" campo="campo2" id="a" value="ddd">
</div>

<script>
el = "script.php?";
nodesnum=document.getElementById ('padre').childNodes.length;
first=document.getElementById ('padre');

for(i=0; i<nodesnum; i++){

el+=first.childNodes[i].getAttribute("campo")+"="+first.childNodes[i].value;

if(i != nodesnum-1){
el+="&";
}

}
</script>

No sé, bueno, es una idea. No puedes pretender que te hagamos el trabajo.

Última edición por dontexplain; 15/06/2012 a las 19:32
  #3 (permalink)  
Antiguo 15/06/2012, 21:39
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

dontexplain gracias por responder

quiero saber cuantos elementos tiene el elemento padre

alert(nodesnum); y me arroja 25 tengo solo 15 ,como hago para que me imprima los id de cada elemento para saber si los esta leyendo bien

Código Javascript:
Ver original
  1. nodesnum=document.getElementById ('insertar').childNodes.length;
  2.             first=document.getElementById ('insertar');
  3.             for(i=0; i<nodesnum; i++){
  4.  
  5. alert(first.childNodes[i]);
  6.  
  7. }
  #4 (permalink)  
Antiguo 15/06/2012, 21:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

yo mismo me respondo

alert(first.childNodes[i].id);
  #5 (permalink)  
Antiguo 15/06/2012, 22:03
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

en el div padre (insert , tengo mas dos div mas )

este con el alert no me aparecen todos los id de los elementos que necesito enviar por ajax a la base de datos

<div id="insert">
<div class="columnas" id="col_1">
<form/>
<label for="name">Nombre</label>
<input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all" />
<label for="email">Email</label>
<input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" />
<label for="telefono1">Telefono 1</label>
<input type="text" name="telefono1" id="telefono1" value="" class="text ui-widget-content ui-corner-all" />
<label for="telefono2">Telefono 2</label>
<input type="text" name="telefono2" id="telefono2" value="" class="text ui-widget-content ui-corner-all" />
<label for="fax">Fax</label>
<input type="text" name="fax" id="fax" value="" class="text ui-widget-content ui-corner-all" />
<label for="web">Web</label>
<input type="text" name="web" id="web" value="" class="text ui-widget-content ui-corner-all" />
<label for="speedC">Categoria</label>
<p>
<select name="categoria" id="categoria">
<option value="1">Seleccione...</option>
<?php
foreach($fc as $field)
{
echo "<option value='$field[id_categoria]'>$field[nombre_cat]</option>";
}
?>
</select>
</p>


</div>
<div class="columnas" id="col_2"> </br>
</br>
<label for="publicaciones">Publicaciones</label>
<!--<table width="400" border="0" class="ui-widget ui-widget-content" id="users">
<tr class="ui-widget-header">
<td>
<div align="right">
<input type="checkbox" name="checkbox" value="checkbox" />
</div>

</td>
</tr>
</table>-->
<?
$volcan=0;

foreach($fp as $field)
{
if($volcan != $field['cod_volcan']) {?>
<table width="400" border="0" class="ui-widget ui-widget-content" id="users">
<tr class="ui-widget-header ">
<td colspan="2"><div align="center"><? echo $field['nom_volcan']; ?></div></td>
</tr>
<?

$volcan = $field['cod_volcan'];
}?>
<tr>
<td width="95%"><? echo $field['nom_publicacion'];?> </td>
<td width="5%"><div class="ui-checkbox">
<input name="checkbox" type="checkbox" id="theid" />
</div></td>
</tr>
<?
}
?>
</table>
<br />
<br />
<label for="observaciones">Comentario</label>
<textarea name="comentario" id="comentario" cols="74" rows="3" class="required ui-widget ui-widget-content ui-corner-all"></textarea>
</form>
</div>

</div>
  #6 (permalink)  
Antiguo 15/06/2012, 22:56
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

leyendo puedo utilizar serialize()

que ventajas tendria?
que desventajas?
  #7 (permalink)  
Antiguo 16/06/2012, 10:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

hola amigos

con este codigo envio todos los input y los guardo en la base de datos pero tengo un grupo de checkbox necesito que si esta checked se envie el valor del id si no que se guarde cero 0.

he intentado con el valor value="" pero no lo he conseguido hacer

Código Javascript:
Ver original
  1. var dataString = $('#form_account').serialize();
  2. alert('Datos serializados: '+dataString);
  3. $.ajax({
  4.               url:'archivo.php',
  5.               type:'POST',
  6.               data: dataString,
  7.               }).done(function() {
  8.            cargar_usuarios();
  9.         $(".ui-selectmenu-status").html("Seleccione...");
  10.         $('input:checkbox').removeAttr('checked');
  11.                  })


Código PHP:
Ver original
  1. <input name="<? echo "id_publicaciones".$i;?>" type="checkbox" id="<? echo $field['id_publicaciones'];?>"/>
  #8 (permalink)  
Antiguo 18/06/2012, 02:58
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

buscando por google encontre este codigo que es una extensión para jQuery, que básicamente lo que hace es lo mismo que “serialize” pero pone siempre los checkboxes, de tal forma que pone “nombre=1” cuando el checkbox está activado, y “nombre=0” cuando no está activado

Código Javascript:
Ver original
  1. jQuery.fn.jserialize = function () {
  2.   var serialized = this.serialize();
  3.  
  4.   $(this).find(':checkbox').each (function() {
  5.     var tofind    = $(this).attr('name') + "=" + $(this).val();
  6.     var toreplace = $(this).attr('name') + "=" + (this.checked ? '1' : '0');
  7.  
  8.     if (this.checked)   { serialized = serialized.replace (tofind, toreplace); }
  9.     else                { serialized += "&amp;" + toreplace; }
  10.   });
  11.  
  12.   return serialized;
  13. }

como uno a mi codigo inicial y quede funcional
  #9 (permalink)  
Antiguo 18/06/2012, 20:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

hola amigos hasta el momento envio solo los checkbox que estan chekeados he buscado por san google si existe la posibilidad de enviar “nombre=1” cuando el checkbox está activado, y “nombre=0” cuando no está activado y solo he encontrado lo siguiente

http://www.codigomanso.com/es/2008/1...#comment-28737


podrian ayudarme a enterder el codigo que exponen en dicha pagina o por lo menos decirme si este puede funcionar

Código Javascript:
Ver original
  1. jQuery.fn.jserialize = function () {
  2.   var serialized = this.serialize();
  3.  
  4.  
  5.  
  6.  
  7.   $(this).find(':checkbox').each (function() {
  8.    
  9.     var tofind    = $(this).attr('name') + "=" + $(this).val();
  10.     var toreplace = $(this).attr('name') + "=" + (this.checked ? '1' : '0');
  11.  
  12.     if (this.checked)   { serialized = serialized.replace (tofind, toreplace); }
  13.     else                { serialized += "&amp;" + toreplace; }
  14.   });
  15.  
  16.   return serialized;
  17. }






este es mi codigo actual

Código Javascript:
Ver original
  1. var dataString = $('#form_account').serialize();
  2.              alert('Datos serializados: '+dataString);
  3.            
  4.            
  5.                 $.ajax({
  6.                         url:'archivo.php',
  7.                         type:'POST',
  8.                         data: dataString,
  9.                         }).done(function() {
  10.                    cargar_usuarios();
  11.                          })


Código PHP:
Ver original
  1. <input name="<? echo "id_publicaciones".$i;?>" type="checkbox" id="<? echo $field['id_publicaciones'];?>" value=""/>
  #10 (permalink)  
Antiguo 19/06/2012, 05:28
Avatar de Lucieta86  
Fecha de Ingreso: noviembre-2010
Mensajes: 45
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: enviar n datos mediante ajax

Código Javascript:
Ver original
  1. var seleAulas = new Array();
  2.    
  3.     $("input[name='aulaRes']:checked").each(function(){
  4.         seleAulas.push($(this).val());
  5.     });

Este te recogeria el valor de aquellos que estan checkeados, si hay mas de uno.

Si solo es un checkbox, puedes declarar la var seleAulas="", de modo que solo cogeria el valor del checkeado.

Podrias comprobar con un if si esa variable tiene valor, si lo tiene, perfecto y si no lo tiene, es que no esta checkeado y por tanto puedes asignarle tu el valor.
  #11 (permalink)  
Antiguo 19/06/2012, 05:29
Avatar de Lucieta86  
Fecha de Ingreso: noviembre-2010
Mensajes: 45
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: enviar n datos mediante ajax

Yo hago el ajax de este modo, por si te sirve de ayuda:

Código Javascript:
Ver original
  1. var fIni= $("#varFIni").val();
  2.     var fFin= $("#varFFin").val();
  3.     var hIni= $("#varHini").val();
  4.     var hFin=$("#varHfin").val();
  5.     var seleAulas = new Array();
  6.    
  7.     $("input[name='aulaRes']:checked").each(function(){
  8.         seleAulas.push($(this).val());
  9.     });
  10.        
  11.     param="fIni="+fIni+"&fFin="+fFin+"&seleAulas="+seleAulas+"&hIni="+hIni+"&hFin="+hFin;  
  12.    
  13.     $.ajax({
  14.         type: "GET",
  15.         url: "formularioReserva.php",
  16.         data: param,
  17.         success: function(datos){
  18.             $("#cargarForm").html(datos);
  19.            
  20.         }
  21.     });
  #12 (permalink)  
Antiguo 19/06/2012, 20:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

gracias por responder Lucieta86 estoy siguiendo tu consejo pero no se como implementar la parte que dices "Podrias comprobar con un if si esa variable tiene valor, si lo tiene, perfecto y si no lo tiene, es que no esta checkeado y por tanto puedes asignarle tu el valor."

este es mi codigo me falta implementar para que se envie un 0 cero a checkbox que no estan chekeados
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.  
  3.     $('#create_account').click(function(){
  4.  
  5.         //var dataString = $('#form_account').serialize();
  6.  
  7.  
  8.             var arrayOpt = new Array;
  9.               $('input[type=checkbox]').each(function() {
  10.                         if ($(this).attr('name') == 'opcion[]') {
  11.                             if ($(this).attr('checked') == 'checked') {
  12.                                 arrayOpt.push($(this).val());
  13.                                
  14.                             }
  15.                         }
  16.                     });
  17.  
  18.         //alert('Datos serializados: '+dataString);
  19.         var noma= $("#nombre").val();
  20.         var corra= $("#correo").val();
  21.         var telea= $("#telefono").val();
  22.        
  23.              
  24.    
  25.             param="nom="+noma+"&corr="+corra+"&boletines="+arrayOpt+"&tele="+telea;
  26.            // alert("Nombre:"+" "+noma+"\n"+"Correo:"+" "+corra+"\n"+"Telefono:"+" "+telea+"\n"+"boletines:"+" "+arrayOpt);
  27.  
  28.         $.ajax({
  29.             type: "POST",
  30.             url: "account.php",
  31.             data: param,
  32.             success: function(data) {
  33.            
  34.  
  35.             }
  36.         });
  37.     });
  38. });
  #13 (permalink)  
Antiguo 19/06/2012, 22:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: enviar n datos mediante ajax

estoy

amigos como asigno un valor a un checkbox

de esta manera arrayOpt.push($(this).val()==0);

y mediante un alert("boletines:"+" "+arrayOpt);

tengo como resultado
boletines: false,false




Código Javascript:
Ver original
  1. var arrayOpt = new Array;
  2.               $('input[type=checkbox]').each(function() {
  3.                         if ($(this).attr('name') == 'opcion[]') {
  4.                             if ($(this).attr('checked') == 'checked') {
  5.                                 arrayOpt.push($(this).val());
  6.                                 } else{
  7.                                 arrayOpt.push($(this).val()==0);
  8.                                
  9.                                 }
  10.                         }
  11.                     });

como le asigno el valor 0 cero

Etiquetas: ajax
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 10:55.