Foros del Web » Programando para Internet » PHP »

combinar jQuery y PHP

Estas en el tema de combinar jQuery y PHP en el foro de PHP en Foros del Web. Hola, tengo un problemilla que creo se solucionaría usando Ajax. Tengo un conocimiento muy básico de Ajax y no me veo de momento capacitado, os ...
  #1 (permalink)  
Antiguo 06/08/2013, 10:43
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada
Mensajes: 9
Antigüedad: 10 años, 8 meses
Puntos: 0
combinar jQuery y PHP

Hola, tengo un problemilla que creo se solucionaría usando Ajax. Tengo un conocimiento muy básico de Ajax y no me veo de momento capacitado, os agradecería si podéis sugerirme alguna otra opción o guiarme sobre qué hacer con Ajax.

Lo que quiero hacer es que una serie de botones, al hacer clic, cambien unos campos de texto que tienen debajo (haces clic en el nombre de un curso y ves la información relacionada). El contenido de esos campos viene de una base de datos.



En el html llamo a cada variable:

<div class="curso">
<div class="fechaCurso"> <?= $cursoSelecc["fechas"]?> </div>
<div class="tituloCurso"> <?= $cursoSelecc["titulo"]?> </div>
<div class="textoCurso"> <?= $cursoSelecc["texto"]?> </div>
</div>



Y mediante un evento onClick para cada botón obtengo la id del curso:

<div class="cursoBoton" onClick="infoCurso(<? echo $curso["id"]?>)">



Pero si creo la función "infoCurso(id)" no puedo meterle php para definir la variable "cursoSelecc":

$cursoSelecc = mysql_query("SELECT * FROM cursos WHERE id = '$_GET[id]'")



El problema es que no sé dónde meter la definición de la variable porque no se puede meter código php dentro de jQuery y como decía no domino Ajax. O quizá voy muy desencaminado, después de horas dándole vueltas no veo nada!

Gracias
  #2 (permalink)  
Antiguo 06/08/2013, 11:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: combinar jQuery y PHP

Que no domines Ajax no es excusa para no intentarlo, claro que es Ajax lo que necesitas porque como bien indicas no se pueden combinar ambos lenguajes no más por que sí.

Te sugiero buscar temas similares en el foro, lo menos que puedes hacer es aprender un poco más antes de pedirle a los demás que escriban el código por ti.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/08/2013, 11:18
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada
Mensajes: 9
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: combinar jQuery y PHP

Pateketrueque, te aseguro que he estado investigando y aprendiendo, he encontrado que el problema está ahí y he intentado ponerme al día en Ajax, pero no siempre es posible aprender tanto en unas horas. Tampoco pedía que me escribieran el código, sólo pedía "si podéis sugerirme alguna otra opción o guiarme sobre qué hacer con Ajax".

Vamos, que no creo que haya sido tan caradura, menuda respuesta chaval... Ya me las buscaré, gracias.
  #4 (permalink)  
Antiguo 06/08/2013, 11:35
 
Fecha de Ingreso: febrero-2004
Ubicación: Guatemala
Mensajes: 117
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: combinar jQuery y PHP

Creo que debes aclarar algo:

Cuando utilizas ajax lo que buscas es actualizar alguna parte de tu documento o pagina web, sin volver a llamar todo el sitio, por lo que regularmente tendras un elemento contenedor destino, adicional puede que necesitas que el contenido a actualizar sea resultado de operaciones con php, entonces debes entender que se llama un script php que generar codigo de salida html.

Es algo asi

<html>
<a href="">click</a>
<div id="resultadoajax"></div>
</html>

entonces cuando haces click en "click" este llama un script php que genera el resultado en el div "resultadoajax"
__________________
Saludos cordiales
Juan Luis Herrera
IT Guatemala CA
  #5 (permalink)  
Antiguo 06/08/2013, 11:45
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: combinar jQuery y PHP

Fuera del tema: ¿Podrias utlizar para otras veces el resaltador de codigo?. :)

Ahora hablando de tu problema. Como yo lo veo:

Puede que si y puede que no necesites Ajax. Me explico:

1º Sin Ajax:

Código HTML:
Ver original
  1. <div class="curso">
  2. <div class="fechaCurso"> <?= $cursoSelecc["fechas"]?> </div>
  3. <div class="tituloCurso"> <?= $cursoSelecc["titulo"]?> </div>
  4. <div class="textoCurso"> <?= $cursoSelecc["texto"]?> </div>
  5. </div>

Con php estas enviando a la web $cursoSelecc["fechas"] ... y seguramente en alguna de esas columnas de la tabla (me lo estoy imaginando que puede ser asi) esta el texto que quieres enviar. Podrias ocultarlo en un div y luego mostrarlo con jquery. Ocultar un div es algo asi (he buscado por encima):

Código HTML:
Ver original
  1. <div style="display: none;"> <?= $cursoSelecc["texto"]?></div>

Deberas buscar como se muestra/oculta un div oculto con jquery o libreria.

2º Puede que si necesites Ajax:

Si buscas un poco de Ajax en Jquery veras que lo que se hace es una peticion a una web y que esta puede devolver otro html, json, txt...

Te recomiendo que empieces por [URL="http://www.w3schools.com/jquery/jquery_ajax_load.asp"]aqui[/URL]

Tendras que crear un php que pasandole el id te devuelva el texto y como en los ejemplos del w3school simplemente remplazas.

Dudas??

Ahora traenos codigo :).

Saludos.
  #6 (permalink)  
Antiguo 06/08/2013, 11:49
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada
Mensajes: 9
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: combinar jQuery y PHP

Sí jluishg, se trata de actualizar sólo una parte que es resultado de llamadas mediante php, justo lo que explicas. Me ayuda un montón, gracias!
  #7 (permalink)  
Antiguo 06/08/2013, 11:56
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada
Mensajes: 9
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: combinar jQuery y PHP

Ok jarios, soy nuevo por aquí y no conocía el resaltador de código! Lo usaré..

Conozco la opción de mostrar div ocultos con jQuery, pero prefiero una solución más limpia porque puede haber un montón de cursos (o div).

Me estoy peleando con Ajax y sí, cuando lo consiga os enseño el resultado ;)

Gracias!
  #8 (permalink)  
Antiguo 10/08/2013, 05:57
 
Fecha de Ingreso: agosto-2013
Ubicación: Granada
Mensajes: 9
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: combinar jQuery y PHP

Cita:
Iniciado por jarios Ver Mensaje
Fuera del tema: ¿Podrias utlizar para otras veces el resaltador de codigo?. :)

Ahora hablando de tu problema. Como yo lo veo:

Puede que si y puede que no necesites Ajax. Me explico:

1º Sin Ajax:

Código HTML:
Ver original
  1. <div class="curso">
  2. <div class="fechaCurso"> <?= $cursoSelecc["fechas"]?> </div>
  3. <div class="tituloCurso"> <?= $cursoSelecc["titulo"]?> </div>
  4. <div class="textoCurso"> <?= $cursoSelecc["texto"]?> </div>
  5. </div>

Con php estas enviando a la web $cursoSelecc["fechas"] ... y seguramente en alguna de esas columnas de la tabla (me lo estoy imaginando que puede ser asi) esta el texto que quieres enviar. Podrias ocultarlo en un div y luego mostrarlo con jquery. Ocultar un div es algo asi (he buscado por encima):

Código HTML:
Ver original
  1. <div style="display: none;"> <?= $cursoSelecc["texto"]?></div>

Deberas buscar como se muestra/oculta un div oculto con jquery o libreria.

2º Puede que si necesites Ajax:

Si buscas un poco de Ajax en Jquery veras que lo que se hace es una peticion a una web y que esta puede devolver otro html, json, txt...

Te recomiendo que empieces por [URL="http://www.w3schools.com/jquery/jquery_ajax_load.asp"]aqui[/URL]

Tendras que crear un php que pasandole el id te devuelva el texto y como en los ejemplos del w3school simplemente remplazas.

Dudas??

Ahora traenos codigo :).

Saludos.
Bueno, pues ya está montado y funciona perfectamente, tengo en el archivo php "principal":

1. Un contenedor vacío o con un texto que será sustituido:

Código HTML:
Ver original
  1. <div class="contCurso"></div>


2. Una serie de botones (dentro de un bucle while) con llamada a una función javascript:

Código HTML:
Ver original
  1. <a href="javascript:cargaCurso('<? echo $curso["id"]?>')">
  2.      <div class="cursoBoton">
  3.     <? echo $curso["titulo_corto"]; ?>
  4.       </div>
  5. </a>

3. Y la función:

Código Javascript:
Ver original
  1. function cargaCurso(idCurso){
  2.     $(".contCurso").load("verCursos.php",{id:idCurso});
  3. }


Esta función descarga el contenido del archivo "verCursos.php" dentro del div "contCurso" tras pasarle la id del curso en el que se ha hecho clic. Esta id indica de qué curso se deben descargar, desde la base de datos, los contenidos que se solicitan en el archivo "verCursos.php".

Muchas gracias a los que habéis aportado algo!

Etiquetas: ajax, jquery
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 00:03.