Lo que intento hacer es utilizar Ajax para pedir unos datos a mi BD y guardarlos en variables de sesión de PHP y después mostrarlos en campos de la web.
Por un lado tengo esta función que la llamo con el evento onclick de una lista desplegable:
Using javascript Syntax Highlighting
- function show(str)
- {
- if (str=="0")
- {
- document.formparam.tbaseloc.value="";
- document.formparam.tmeasure.value="";
- return;
- }
- if (window.XMLHttpRequest) {
- // code for IE7+, Firefox, Chrome, Opera, Safari
- xmlhttp=new XMLHttpRequest();
- } else if (window.ActiveXObject) {
- // code for IE6, IE5
- xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
- } else {
- alert("Your browser does not support XMLHTTP!");
- }
- xmlhttp.open("GET","showparam.php?code=1",true);
- xmlhttp.send();
- document.formparam.tbaseloc.value="<?php
- if (isset($_SESSION['baseloc'])){
- echo $_SESSION['baseloc'];
- }
- else{
- echo "?error";
- }
- ?>";
- document.formparam.tmeasure.value="<?php
- if (isset($_SESSION['measure'])){
- echo $_SESSION['measure'];
- }
- else{
- echo "?error";
- }
- ?>";
- }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Y por otro lado mi código en showparam.php es el siguiente:
Using php Syntax Highlighting
- <?php
- session_start();
- $paramcode = $_GET['code'];
- //$paramcode=2;
- include('admin/connect_DB.php');
- $sql="SELECT * FROM in_param where grab_code='".$paramcode."'";
- //$sql="SELECT * FROM in_param where grab_code=2";
- $result = mysql_query($sql);
- $param = mysql_fetch_array($result);
- if( $param ){
- $_SESSION['baseloc'] = $param['base_loc'];
- $_SESSION['measure'] = $param['measure'];
- $_SESSION['loadparam']="1";
- }
- else{
- $_SESSION['baseloc']="";
- $_SESSION['measure']="";
- $_SESSION['loadparam']="1";
- }
- mysql_close();
- ?>
Coloreado en 0.021 segundos, usando GeSHi 1.0.8.4
El problema es que no muestra los valores de las variables de sesión al seleccionar un elemento de la lista desplegable. Es como si no pasase por showparam.php.
Sin embargo, si recargo la página en el navegador, ya sí que me funciona.
Es como si las variables de sesión no tuviesen ningún valor hasta que recargo la página, y es más: al recargar la página, entonces sí que me muestra las variables de sesión con los valores correctos.
No sé si me he explicado bien ya que al menos para mí es algo lioso.
Gracias por vuestra ayuda.