Foros del Web » Programando para Internet » PHP »

INSERTE desde un link

Estas en el tema de INSERTE desde un link en el foro de PHP en Foros del Web. Hola a todos; necesitaria saber como hacer que desde un link me inserte un dato en la BD. Lo que quiero hacer es poner una ...
  #1 (permalink)  
Antiguo 03/12/2009, 11:24
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
INSERTE desde un link

Hola a todos; necesitaria saber como hacer que desde un link me inserte un dato en la BD.
Lo que quiero hacer es poner una frase, por ejemplo "ME GUSTA" y que al apretar ese enlace me inserte un dato en la BD (campo oculto) pero que no me recargue la pagina si pudiera ser, solamente que me inserte ese dato.
Gracias
  #2 (permalink)  
Antiguo 03/12/2009, 11:44
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: INSERTE desde un link

Al hacer click en un link podes ir a una pagina que tenga un script PHP, y pasarle variables get por url.

O podes usar ajax para no ir hacia esa pagina, pero para en cambio enviar variables POST (o get si quisieses) al script en PHP.

Tu pregunta se refiere al script PHP para insertar eso en mysql?

O a como ir a la pagina del script y volver a tu pagina?
  #3 (permalink)  
Antiguo 03/12/2009, 11:44
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: INSERTE desde un link

te estas contestando a vos mismo che! "no quiero que recargue la pagina"--> AJAX
  #4 (permalink)  
Antiguo 08/12/2009, 17:25
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

Entonces supongo que tengo que preguntar en el foro de AJAX para saber como hacerlo.
  #5 (permalink)  
Antiguo 08/12/2009, 17:32
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: INSERTE desde un link

tu codigo seria algo asi:

Código javascript:
Ver original
  1. <script type="text/javascript">
  2. function Ajax(){
  3.     var xmlhttp = false
  4.     if (window.XMLHttpRequest) {// Si es IE7, Mozilla, Safari etc
  5.         xmlhttp = new XMLHttpRequest();
  6.     } else if (window.ActiveXObject){ // pero si es IE6
  7.         try {
  8.             xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  9.         }
  10.         catch (e){ // en caso que sea una versión más antigua
  11.             try{
  12.                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  13.             }catch (e){}
  14.         }
  15.     }
  16.     if(!xmlhttp){
  17.         alert("Error: Este navegador no soporte al objeto XMLHTTP");
  18.     }
  19.     return xmlhttp;
  20. }  
  21.  
  22. function insertar(dato){
  23.     var ajax=Ajax();
  24.     ajax.open("GET", "insertar.php?dato="+dato, true);
  25.     ajax.send(null);
  26. }  
  27. </script>
  28. <a href="javascript:insertar('datos...')">ME GUSTA</a>

Gracias por el karma :P

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 14/12/2009, 03:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

Gracias por la respuesta, pero no llego a entenderla.
Pones que debo de llamar a una pagina "insertar.php" supongo que tengo que poner una pagina "insertar.php" y en esa porner el insert del dato a la BB.DD.
Si no te importa, me lo podrías aclarar.

Un saludo y gracias de nuevo
  #7 (permalink)  
Antiguo 14/12/2009, 12:38
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: INSERTE desde un link

Claro, tienes tu pagina normal....... y cuando das click al link.... llamas a una pagina digamos insertar.php y le pasas los parametros determinados si los requiere.... y ahi te conectas a base de datos y haces tus sentencias de insercion....

y listo...... es como si ejecutaras el archivo pero nada mas..... solo le ejecutas y alternativamente este te puedo retornar informacion que podrias utilizar en tu web actual.

digamos, una vez insertado, devuelves un mensaje de exito si se inserto bien, caso contrario no muestras nada.... y ps en el javascript de la web haces la logica para ello.

Espero hayas comprendido algo mejor...... sino mira este link: http://www.victormartingarcia.com/20...endiendo-ajax/

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #8 (permalink)  
Antiguo 16/12/2009, 11:25
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

Hola de nuevo, tengo otra pregunta...
Si quiero enviar variables, como lo envio?.
He puesto la pagina insertar.php esto..
Código PHP:
<?php require_once('../Connections/noscasa.php'); ?>

<?PHP

$numero
=$_GET['numero'];
mysql_query("INSERT INTO megusta (idusuario) VALUES ('$numero')");
?>
y en lo que tu me has enviado esto...
<a href="javascript:insertar('numero=1')">ME GUSTA</a>

Lo que quiero hacer es enviar 2 variables por URL.
Como lo tendria que hacer?
  #9 (permalink)  
Antiguo 16/12/2009, 11:35
Avatar de Vitesse92  
Fecha de Ingreso: diciembre-2009
Ubicación: Internet
Mensajes: 145
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: INSERTE desde un link

amigo , tomate tu tiempo http://www.victormartingarcia.com/2007/04/02/entendiendo-ajax/ ahi esta un ejemplo con dos variables, si te tomas 5 minutos para observasr el ejemplo detenidamente veras la respuesta.

Esta en la suma de dos numeros con ajax.
Hasta yo le sacare provecho a esto.
  #10 (permalink)  
Antiguo 16/12/2009, 12:13
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

Pues ya le he dado mas de 2 horas a ese ejemplo. El caso es que no le veo la solucion.
Por ejemplo, en el ejemplo el hace un POST
Código PHP:
ajax.open("GET""insertar.php?dato="+datotrue); 
y masterojitos hace un GET. despues en el ejemplo no hay LINK o por lo menos yo no lo vi.

hay una cosa que no entiendo muy bien y es que si yo le meto al "insertar.php
Código PHP:
ajax.open("GET", "insertar.php?dato="<?php echo $row_userpiensa['id_gente']; ?>, true);
las variables, que debo de poner en el link
Código PHP:
<a href="javascript:insertar('dato')">ME GUSTA</a
eso es lo que no entiendo, a ver si tu puedes explicarmelo
  #11 (permalink)  
Antiguo 16/12/2009, 12:28
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: INSERTE desde un link

Bueno, en primer lugar le recomiendo que se documente con algun tutorial base o curso de ajax básico.

Segundo lugar. Usted, debe guiarse del ejemplo que le dio master ojitos (inclusive, solo copie y pegelo)... eso es lenguaje javascript, debe ir en un archivo .js o arriba de su pagina principal o index entre etiquetas <script> deje tal como esta el

ajax.open("GET", "insertar.php?dato="+dato, true);


lo unico que usted debe hacer en la pagina insertar.php es:

Código PHP:
$recibido=$_GET['dato'];
$sql="inserto into tabla values('".$recibido."')";
... 

Ahora como en su pagina principal esta el link <a href="javascript:insertar('dato')">ME GUSTA</a>

puede cambiarle el valor que desee en "dato" y eso es lo que se grabará en su BD....

<a href="javascript:insertar('me gusta mi gato')">ME GUSTA</a>
__________________
Quitenme la vida pero no la bebida.
  #12 (permalink)  
Antiguo 16/12/2009, 13:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

Pues no me funciona
esto es lo que tengo antes del </head>
Código PHP:
<script type="text/javascript">
#
function Ajax(){
#
    
var xmlhttp false
#
    
if (window.XMLHttpRequest) {// Si es IE7, Mozilla, Safari etc
#
        
xmlhttp = new XMLHttpRequest();
#
    
} else if (window.ActiveXObject){ // pero si es IE6
#
        
try {
#
            
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
#
        
}
#
        
catch (e){ // en caso que sea una versión más antigua
#
            
try{
#
                
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
#
            
}catch (e){}
#
        
}
#
    
}
#
    
if(!xmlhttp){
#
        
alert("Error: Este navegador no soporte al objeto XMLHTTP");
#
    
}
#
    
return xmlhttp;
#
}  
#
 
#
function insertar(dato){
#
    
var ajax=Ajax();

    
ajax.open("GET""insertar.php?dato="+datotrue);

    
ajax.send(null);

}  

</script> 
Y esto en el insertar.php
Código PHP:
<?php
$recibido
=$_GET['dato']; 
mysql_connect("localhost","usuario","******");
mysql_select_db("mi_BD"); 
mysql_query("INSERT INTO megustas (usuario_me) VALUES ('$recibido')");

?>
Si cargo la pagina quitando el ('$recibido')y poniendo ('1') me inserta el 1 con lo cual funciona. pero cuando le doy al enlace, no me inserta nada.
Esto es lo que tengo en el link
Código PHP:
<a href="javascript:insertar('<?php echo $row_userpiensa['id_gente']; ?>')">ME GUSTA</a>
y si pongo encima del link el raton, me muestra que sale el dato que le pido.

Donde puede estar el fallo?
  #13 (permalink)  
Antiguo 16/12/2009, 13:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

Perdon, ya me funciona.
  #14 (permalink)  
Antiguo 16/12/2009, 13:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

Pero.... tengo que meterle 2 valores, con $_GET['dato'] consigo 1, pero como consigo el otro? perdona por mi ignorancia
  #15 (permalink)  
Antiguo 16/12/2009, 13:49
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: INSERTE desde un link

var xmlhttp = false ---> aca te falta un ; de cierre en la funcion Ajax()

Igualmente me parece que el problema es otro. Lo estas llamando desde localhost/tuarchivo con el apache corriendo no?

EDIT: ya lo habias solucionado =)
  #16 (permalink)  
Antiguo 16/12/2009, 13:52
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: INSERTE desde un link

Cita:
Iniciado por visona Ver Mensaje
Pero.... tengo que meterle 2 valores, con $_GET['dato'] consigo 1, pero como consigo el otro? perdona por mi ignorancia
insertar.php?dato="+dato+"&dato2="+dato2

Se entiende?
  #17 (permalink)  
Antiguo 16/12/2009, 14:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

Pues parece claro, pero para mi un poco complicado.
en el insertar.php
Código PHP:
$recibido=$_GET['dato']; 
$recibido2=$_GET['dato2'];
mysql_query("INSERT INTO megustas (usuario_me, piensas_me) VALUES ('$recibido', '$recibido2' )"); 
En el link
Código PHP:
<a href="javascript:insertar('<?php echo $row_userpiensa['id_gente']; ?>','<?php echo $row_citas['id_piensas']; ?>')">ME GUSTA</a>
Y he probado de muchas maneras de colocar el LINK, pero no me va.
Nuevamente, perdona mi ignorancia
  #18 (permalink)  
Antiguo 16/12/2009, 14:54
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 meses
Puntos: 9
Respuesta: INSERTE desde un link

vas bien... pero no te olvides de la funcion javascript que tienes arriba... esta se encarga de pasar los valores al servidor... por eso si deseas poner mas valores, tienes que agregarle esos mismos a tu funcion ajax... eso lo ves en:


function insertar(dato,dato2){
#
var ajax=Ajax();

ajax.open("GET", "insertar.php?dato="+dato+"&dato2="+dato2, true);

ajax.send(null);

}
__________________
Quitenme la vida pero no la bebida.
  #19 (permalink)  
Antiguo 16/12/2009, 17:47
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: INSERTE desde un link

OK, solucionado, muchas gracias
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 21:20.