¿Que necesitamos?
- IDE Netbeans 6.9 o Sup
- Conocimientos de PHP
- Para las pruebas un servidor web instalado en el equipo
Proyecto.
CLASE: formulario.java
01 package jpFormulario; 02 import java.io.BufferedReader; 03 import java.io.IOException; 04 import java.io.InputStreamReader; 05 import java.io.OutputStreamWriter; 06 import java.net.URL; 07 import java.net.URLConnection; 08 import java.net.URLEncoder; 09 /** 10 * @web http://jc-mouse.blogspot.com/ 11 * @author Mouse 12 */ 13 public class formulario { 14 15 /* FUNCION PARA ENVIAR LOS DATOS AL SERVIDOR */ 16 public String enviardatos(String name, String app, String apm, String mail) 17 { 18 try { 19 //se forma la cadena con los datos a enviar 20 String dataString ="name="+name+"&app="+app+"&apm="+apm+"&mail="+mail; 21 URLEncoder.encode(dataString, "UTF-8"); 22 // Send data 23 URL url = new URL("http://localhost/japplet/jpFormulario/index.php"); 24 URLConnection conn = url.openConnection(); 25 conn.setDoOutput(true); 26 OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 27 wr.write(dataString); 28 wr.flush(); 29 //se obtiene la respuesta del servidor 30 BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 31 String linea, tmp = ""; 32 while (( linea = rd.readLine()) != null) 33 tmp+=linea; 34 //se da un formato de salida al texto 35 tmp = formato(tmp); 36 wr.close(); 37 rd.close(); 38 39 return tmp; 40 } catch (IOException ex) { 41 return ""; 42 } 43 } 44 45 /* funcion que dada una cadena de forma: 46 * texto-texto-texto.... 47 * separa con un guion, la separa y devuelve 48 * en lineas 49 */ 50 private String formato(String tmp) 51 { 52 int j = 0; 53 String [] r = tmp.split("-"); 54 tmp=""; 55 while(j<r.length){ 56 tmp+=r[j]+"\n"; 57 j++; 58 } 59 return tmp; 60 } 61 62 }
Explicación:
En la linea 20: formamos lo que sera nuestra cadena de datos muy similar a lo que hacemos en javascript y ajax.
En la linea 23: debemos colocar la ruta absluta del archivo PHP al que queremos conectarnos, recuerda que un applet se ejecuta desde en la PC del cliente y el PHP desde el servidor, esta linea debe tener la forma de:
http://www.mipaginaweb.net/carpeta/micodigo.php
El resto de codigo que le continua es para abrir la conexion, mandar los datos y esperar respuesta.
desde la linea 30 podemos ver como se obtiene la respuesta, esta sera un string al cual ya podemos dar el uso que queramos.
Para este ejemplo recibimos una cadena de tipo "texto-texto-texto...." los datos como se observa estan separados por guiones, entonces utilizando el split() formamos un array, damos formato y mostramos al usuario mediante el JTextArea, esto no tiene nada que ver con el envio de datos y solo se lo hace para tener algo más presentable al usuario, bien podriamos esperar un 1 o 0 como respuesta del servidor y mostrar una venta de aviso.
4. Para terminar el applet debemos implementar esta clase en la clase interfaz.java. Si seguiste las instrucciones de arriba, solamente deberas añadir al JButton el siguiente codigo:
01 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 02 formulario f = new formulario(); 03 RESPUESTA.setText( 04 f.enviardatos(name.getText(), app.getText(), apm.getText(), mail.getText()) 05 ); 06 }
Explicación: Creamos una instancia de la clase formulario.java y al objeto jTextArea, asignaremos la funcion enviardatos() con los datos que obtendremos de los campos del formulario, como la respuesta que obtendremos es un String, esta la mostraremos directamente en el JTextArea.
5. Nos falta el codigo de nuestro archivo PHP, este es:
01 <?php 02 //comprobamos que los datos POST existen y fueron recibidos correctamente 03 if( isset($_POST['name']) and isset($_POST['app']) 04 and isset($_POST['apm']) and isset($_POST['mail']) ) 05 { 06 //se colocan los datos en variables 07 $name = $_POST['name']; 08 $app = $_POST['app']; 09 $apm = $_POST['apm']; 10 $mail = $_POST['mail']; 11 //con los datos que nos pasa el applet ya pdemos proseguir con el registro en la BD 12 // [ interaccion con la base de datos ] 13 // .... 14 //despues podemos devolver un mensaje al usuario 15 $guion="-"; 16 echo 'GRACIAS POR REGISTRARTE'.$guion; 17 echo 'Nombre: '.$name.$guion; 18 echo 'Ap. Paterno:'.$app.$guion; 19 echo 'Ap. Materno:'.$apm.$guion; 20 echo 'Mail:'.$mail.$guion; 21 echo $guion; 22 echo 'FIN'; 23 } 24 else 25 { 26 echo "Error: No existen datos"; 27 } 28 ?>
El proyecto esta aqui:
1 comentarios:
mira justa mente hoy epille tu blog y tienes mucho material y sobre todo bien explicado que eso es lo que importa y mil grasias por ese magnifico aporte no sabes el orgullo que me dio al ver tan buen trabajo de un paisano mio ok felisidades y sigue asi
att. hamlet-w@hotmail.com
Publicar un comentario