javascript feat. Jquery problem??

Iniciado por TrashAmbishion, 20 Julio 2012, 20:12 PM

0 Miembros y 1 Visitante están viendo este tema.

TrashAmbishion

hola chikos(as) veran en mi web quiero poner un mensaje de felicitacion al cargar la pagina, hasta ahi todo bien lo hice asi (por supuesto hay que incluir la libreria Jquery) y bueno al abrir la pagina carga el mensaje como una ventanita, el problema es que necesito que nada mas lo haga una sola ves, al no ser que cierren el navegador y entonces cargue nuevamente... a esto ultimo hice esto y no me funciona que estoy haciendo malll....gracias

<html>

/*Creo una variable de sesion*/

<?php echo $_SESSION['one']

<head>

<script type="text/javascript">

var ss = '<?php echo $_SESSION['one'] ?>'; 
   
    if (!ss) {
       /* Esto se ejecutaría solamente en la primera carga del archivo. */
$(document).ready(function() {

    $("#dialog").dialog({
         height: 500,
         width: 480,
         modal: true,
         resizable: false
      });
  });
    }

</script>

</head>

<body>

<div name="dialog"> Felicitaciones </div>

</body>
<html>

Spider-Net

#1
Arriba del todo del documento debes poner: <?php session_start(); ?>

Siempre que uses sesiones en php debes poner al principio del documento la función session_start();


Donde pones "<?php echo $_SESSION['one']", que por cierto está mal escrito, falta el ; y el ?> al final. Pero bueno no uses un echo. Pon por ejemplo:

<?php
    $_SESSION['one']=true;
?>

Y el var ss = '<?php echo $_SESSION['one'] ?>';

Tendrías que ponerlo después del dialog este:

$("#dialog").dialog({
         height: 500,
         width: 480,
         modal: true,
         resizable: false
      });

Sino nunca se va a mostrar si le pones el valor antes de mostrarlo, nunca se cumplirá que no tenga el valor.

TrashAmbishion

Esto fue lo ultimo que hice y funciona pero no entiendo porque no cambia el valor de la sesion... a true asi ya no entrara mas, asi como esta me lo ejecuta siempre..

Salu2

<?php session_start(); ?>
<?php $_SESSION['one'] = false; ?>

<html>

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.21.custom.min.js"></script>

<head>

<script type="text/javascript">

   var ss = '<?php echo $_SESSION['one'] ?>';

   if (!ss) {
      $(document).ready(function() {
      $("#dialog").dialog({
          height: 500,
          width: 480,
          modal: true,
          resizable: false
        });
      });
   }

</script>


</head>

<body>

   <?php $one = true; ?>
   
<div id="dialog"> Felicitaciones </div>

</body>
<html>

Spider-Net

Claro que te lo ejecuta siempre. Porque cada vez que recargas la página pones $_SESSION['one']=false; y luego pones un "if(!ss)" y por lo tanto no "false" es true. Haz caso a lo que te dije desde el principio y ponlo así:

Código (php) [Seleccionar]
<?php session_start(); ?>

<html>

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.21.custom.min.js"></script>

<head>

<script type="text/javascript">

   var ss = '<?php echo $_SESSION['one'?>';

   if (!ss) {
      $(document).ready(function() {
      $("#dialog").dialog({
          height: 500,
          width: 480,
          modal: true,
          resizable: false
        });
      });
     <?php $_SESSION['one']=true?>
   }

</script>


</head>

<body>


Así la primera vez que accedes a la web no habrá nada en ss por lo tanto se ejecutará, pero la siguiente vez ya estará $_SESSION['one'] en true, por lo tanto no debería ejecutarse nada.

TrashAmbishion

#4
hola antes de seguir muchas gracias por las molestias que te estas tomando, estoy a punto de hacerlo con un include_once, pero ya quiero saber como lo puedo hacer de esta manera, ahora me lanza este error en el depurador del Chrome...

var ss = '<br />
<b>Notice</b>:  Undefined index: one in <b>D:\xampp\htdocs\prueba.php</b> on line <b>12</b><br />


Lo que creo esta pasando es que al no existir esa session da ese error...

Probe haciendo otros cambios pero nada....

Ademas habia un pequeño error creo yo el ; estaba afuera... en esa misma linea...

Salu2 y gracias nuevamente....

Spider-Net

Cita de: TrashAmbishion en 21 Julio 2012, 14:32 PM
hola antes de seguir muchas gracias por las molestias que te estas tomando, estoy a punto de hacerlo con un include_once, pero ya quiero saber como lo puedo hacer de esta manera, ahora me lanza este error en el depurador del Chrome...

var ss = '<br />
<b>Notice</b>:  Undefined index: one in <b>D:\xampp\htdocs\prueba.php</b> on line <b>12</b><br />


Lo que creo esta pasando es que al no existir esa session da ese error...

Probe haciendo otros cambios pero nada....

Ademas habia un pequeño error creo yo el ; estaba afuera... en esa misma linea...

Salu2 y gracias nuevamente....

Hola de nuevo,

Realmente no es que el ; se me quedase fuera. El de fuera también está correcto, pero sí que se me olvidó ponerlo dentro, así que pónselo tú también. Prueba a hacerlo así:

Código (php) [Seleccionar]
<?
    php session_start();
?>

<html>

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.21.custom.min.js"></script>

<head>

<script type="text/javascript">
<?php 
   
if(isset($_SESSION['one'])){
        echo 
"var ss='true';";
   }else{
        echo 
"var ss='';";
   }
?>


   if (ss=="") {
      $(document).ready(function() {
      $("#dialog").dialog({
          height: 500,
          width: 480,
          modal: true,
          resizable: false
        });
      });
     <?php $_SESSION['one']=true?>
   }

</script>


</head>

<body>