Foros del Web » Programando para Internet » Jquery »

envio de datos formulario a php con jquery

Estas en el tema de envio de datos formulario a php con jquery en el foro de Jquery en Foros del Web. Hola, estoy analizando jquery, he leido bastante sobre el tema, pero hay algo que la verdad no me ha gustado, y es cuando intentamos enviar ...
  #1 (permalink)  
Antiguo 27/02/2009, 09:18
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 19 años, 5 meses
Puntos: 3
envio de datos formulario a php con jquery

Hola, estoy analizando jquery, he leido bastante sobre el tema, pero hay algo que la verdad no me ha gustado, y es cuando intentamos enviar datos pos desde el formulario a un archivo php, que generalmente lo que hara es guardar los datos.

asi son los campos de mi formulario
Código PHP:

<input name="my_name" type="text" id="pais" value="colombia">
<
input name="ciudad" type="text" id="ciudad" value="bogota">
<
label>     <input name="cat" type="checkbox" id="50" value="50" /> </label>
<
label>      <input name="cat" type="checkbox" id="20" value="20" /> </label>
<
label>      <input name="cat" type="checkbox" id="3" value="3"  /> </label
ok, asi es mi java script...


Código PHP:

                my_array
=document.getElementsByName('my_name');//obtiene un array de objects
                
                
my_new_array=new Array();//obtiene un array con valores de las cajas de texto
                //este for se encarga de llenar el array que se va enviar con valores de las cajas de texto
                
for (i=0;i<my_array.length;i++) {

                    
my_new_array[i]=my_array[i].value;
            
//        alert('name: '+my_new_array[i]);
                
}

                
categori=document.getElementsByName('cat');//obtiene un array de objects
                
                
totalCategori=new Array();//obtiene un array con valores de las cajas de texto
                //este for se encarga de llenar el array que se va enviar con valores de las cajas de texto
                
for (i=0;i<categori.length;i++) {
                    if( 
categori[i].checked ){
                        
totalCategori[i]=categori[i].value;
//                        alert('name: '+totalCategori[i]);
                    
}
                    
                } 

pero esta es la parte que me ha parecido mas critica.....
y de verdad algo des alentadora

Código PHP:


                    
$.ajax({
                            
contentType"application/x-www-form-urlencoded",
                            
beforeSend: function(objeto) {
                            $(
"#Id_Div_Status").innerHTML='Cargando...'; },
                            
type"POST",
                            
url"comprov.php",
                            
data'my_data='+escape(my_new_array)+'&cats='+escape(totalCategori)+'&tags='+escape(totalTags),
                            
success: function(datos){
                                $(
"#aviso").html(datos);
                                },
                            
                    }); 
alo que voy es que esta linea :

data: 'my_data='+escape(my_new_array)+'&cats='+escape(to talCategori)+'&tags='+escape(totalTags),

me envia los datos ami comprov.php, pero me lso envia separados por comas, en el caso de mi script podria ser muy obsoleto ya que si el usuario deposita una coma ( , ) el codigo PHP se dañara.

ha!, asi recivo en mi archivo PHP :

Código PHP:
$datos_formulario explode(",",$_POST['my_data']);
$categorias explode(",",$_POST['cats']);
$tags explode(",",$_POST['tags']); 

Señores POR FAVORRRR, que otras formas podrian haver para enviar mis datos, que no ayan que separarlos por comas....


gracias....
__________________
No hay nada que foros del web no sepa!!!!

Peca tanto quien presume de su belleza como de su inteligencia, ya que la brevedad de la vida aunque distorcionada siempre estara presente.
  #2 (permalink)  
Antiguo 27/02/2009, 09:22
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: envio de datos formulario a php con jquery

Podrías enviar los datos como un array, enviando cada parte como un cat[]=valor
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 27/02/2009, 10:14
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 19 años, 5 meses
Puntos: 3
Respuesta: envio de datos formulario a php con jquery

Cita:
Iniciado por David el Grande Ver Mensaje
Podrías enviar los datos como un array, enviando cada parte como un cat[]=valor
sabes que no!!!...

de esto :
my_new_array[i]=my_array[i].value;

pase a esto :

my_new_array[]=my_array[i].value;


y deja de funcionar, al parecer error de sintaxis..

que hago!!!
__________________
No hay nada que foros del web no sepa!!!!

Peca tanto quien presume de su belleza como de su inteligencia, ya que la brevedad de la vida aunque distorcionada siempre estara presente.
  #4 (permalink)  
Antiguo 27/02/2009, 10:32
Avatar de fitorec  
Fecha de Ingreso: septiembre-2008
Ubicación: Oaxaca Oaxaca
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: envio de datos formulario a php con jquery

Hola que tal puedes procesar los datos primero en javascript para asegurarte que si existen las comas sean sustituidas por algun otro carater no utilizable(no aceptble en tu formulario p.e. $ o #,*, etc)

Código PHP:
//Codigo JS: sustimos en las , por $
str = new String(str.replace(",""$")); 
por ultimo no te olvides de restablecer tus comas cuando proceses los datos con php

Código PHP:
// Codigo:php 
$datos_formulario explode(",",$_POST['my_data']);
$categorias explode(",",$_POST['cats']);
// por ejemplo si la vamos ocupar para mostrarla simplemente
foreach($categorias as $item)
     echo 
str_replace  ("$",",",$item)."<br>\n"
Creo que no es la mejor solucion pero igual y se puede adaptar si es que tienes una lista de caracteres no validos y si previamente validas dicho datos te funcionara.

bueno suerte espero te sirva !
  #5 (permalink)  
Antiguo 27/02/2009, 10:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: envio de datos formulario a php con jquery

No me refería a eso, me refiero a que el dato por GET (data) lo pases como cat[]=valor&cat[]=valor y así sucesivamente
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 27/02/2009, 11:47
Avatar de nes24  
Fecha de Ingreso: julio-2005
Mensajes: 746
Antigüedad: 19 años, 5 meses
Puntos: 3
Respuesta: envio de datos formulario a php con jquery

Cita:
Iniciado por David el Grande Ver Mensaje
No me refería a eso, me refiero a que el dato por GET (data) lo pases como cat[]=valor&cat[]=valor y así sucesivamente
ok...

una cosa :


como puedo hacer algo como esto


var texto;

// cargamos data
// por aca un ciclo...
texto .= my_data[] ; /// anidamos la informacion




// dento del elemento ayax



data: '='texto',


se puede, como lo podria hacer..?
__________________
No hay nada que foros del web no sepa!!!!

Peca tanto quien presume de su belleza como de su inteligencia, ya que la brevedad de la vida aunque distorcionada siempre estara presente.
  #7 (permalink)  
Antiguo 05/07/2010, 14:46
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 18 años, 6 meses
Puntos: 10
Respuesta: envio de datos formulario a php con jquery

Hola a todos.
Yo actualmente uso este código para enviar por POST una varibale, la recibo con $_POST['textarea'] pero no envía ninguna variable.

$.ajax({
type: 'POST',
data: 'texto='+$(this).parent().find('textarea').val(),
url: 'receptor.php',

success: function(data){
alert( "Data Saved: " + data );

}

Alguna idea?
__________________
@ivancamiloGo
  #8 (permalink)  
Antiguo 05/07/2010, 14:47
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 10 meses
Puntos: 772
Respuesta: envio de datos formulario a php con jquery

Hola after

Te recuerdo el aviso que había al final de este tema y que parece que no has leído o no le has hecho ni caso.



Tema cerrado.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:00.