Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Estas en el tema de Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE en el foro de Javascript en Foros del Web. Hola compañeros foreros tengo una duda que no se como solucionarla y me gustaria saber si alguno de ustedes me puede enseñar el camino, muchas ...
  #1 (permalink)  
Antiguo 10/07/2013, 02:33
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Hola compañeros foreros

tengo una duda que no se como solucionarla y me gustaria saber si alguno de ustedes me puede enseñar el camino, muchas gracias

bien mi problema es con el siguiente codigo:

Código:
foreach($errores as $error) {
		 echo '<p>'.$error.'</p>';
		 ?>
		<script type="text/javascript">

		alert(<?php '<p>'.$error.'</p>' ?>);
		</script>
		<?php
     }
si nos fijamos la variable $error esta tanto en el "echo" de PHP como dentro del JavaScript,
pues bien:
el Echo si k me muestra el valor del $error,
pero en el alert solo me sale: UNDEFINED

PORQUE????

muchisimas gracias a todos

CopySat
  #2 (permalink)  
Antiguo 10/07/2013, 02:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Código PHP:
Ver original
  1. <?php foreach($errores as $error) {
  2.          echo '<p>'.$error.'</p>';
  3.          ?>
  4.         <script type="text/javascript">
  5.  
  6.         alert("<?php echo $error; ?>");
  7.         </script>
  8.         <?php
  9.      }?>

Alert requiere un string, este puede ser estatico o el valor de una variable javascript, nunca una variable php, ereuerda que php se ejecuta en el servidor y javascript en el cliente. Luego debes imprimir con echo el valor de la variable... no agreges tags html al string que quieres mostrar con el alert puesto que no los interpreta y los va a mostrar como texto....

Por otro lado depende de donde/cuando se impriman esos scripts (javascript) puede que no se ejecuten.

Incluso podrias hacer esto

Código PHP:
Ver original
  1. <script type="text/javascript">
  2. <?php foreach($errores as $error) { ?>
  3.         alert("<?php echo $error; ?>");
  4. <?php } ?>
  5. </script>

o

Código PHP:
Ver original
  1. <script type="text/javascript">
  2. <?php foreach($errores as $error) {
  3.         echo "alert(".$error.");";
  4.   } ?>
  5. </script>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 10/07/2013 a las 03:00
  #3 (permalink)  
Antiguo 10/07/2013, 02:45
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Cita:
Iniciado por quimfv Ver Mensaje
Código PHP:
Ver original
  1. <?php foreach($errores as $error) {
  2.          echo '<p>'.$error.'</p>';
  3.          ?>
  4.         <script type="text/javascript">
  5.  
  6.         alert(<?php echo $error; ?>);
  7.         </script>
  8.         <?php
  9.      }?>

Alert requiere un string no una variable, luego debes imprimir con echo el valor de la variable... no agrweges tag html al string que quieres mostrar con el alert puesto que no los interpreta y los va a mostrar como texto....
ciertamente de esa manera no me sale lo de "UNDEFINED" pero esque tp me salta ningun alert
  #4 (permalink)  
Antiguo 10/07/2013, 04:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Cita:
Por otro lado depende de donde/cuando se impriman esos scripts (javascript) puede que no se ejecuten.
Como ya te he dicho que podia pasar.

PHP no ejecuta javascript lo que hace es imprimir un fichero html y lo sirve al navegador para que este lo interprete, este html puede contener javascript pero para que el navegador lo ejecute debe estar asociado a un evento del lado cliente....

Con lo que muestras de tu php no te puedo ayudar mas....

Debería ver cuando y como lo cargas y el resto del script php para hacerme una composición de lugar....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 10/07/2013, 04:58
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

como me pides:
yo tengo un formulario y al darle al sumbit se ejecuta este PHP que

1º comprueva si los campos requeridos estan vacios
2º comprueva que el e-mail este bien escrito (en caso de no estar vacio, logicamente)
3.1º si no hay errores, inserta los datos en la base de datos
4.1º si hace el insert te manda a otro php que te muestra la tabla (modificada) entera
3.2º si hay errores, te deveria mostrar los alerts (1 alert por cada error)
4.2º automaticamente te devuelve al formulario para que soluciones los errores

ACTUALMENTE:
3.2º te manda a una web en blanco, con 1 <h-N></h-N> donde N el numero de errores
4.2º tienes un boton que te devuelve al formulario para solucionar los errores

el codigo del formulario es:
Código:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!-- TemplateBeginEditable name="doctitle" -->
<LINK REL="Shortcut Icon" HREF="../Config/Imagenes/Copy.ico"> 
<title>Copisteria Imatge - AFEGIR</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link rel="stylesheet" type="text/css" href="../Config/CSS/HTML5_thrColFixHdr.css"/>
<link rel="stylesheet" type="text/css" href="../Config/CSS/Unificacion.css"/>
<link rel="stylesheet" type="text/css" href="../Config/CSS/formCssSINREPETICIONES.css"/>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>

<body>
	<div class="container">
  		<form class="jotform-form" action="../Insert/Comprobaciones/Tecnico.php" method="post" name="Form_31484046338354" id="31484046338354" accept-charset="utf-8">
        <div class="header">
          <h1>AFEGIR - TÈCNIC
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <img src="../Config/Imagenes/Copy.jpg" alt="Copisteria Imatge" width="309" height="114" id="Insert_logo" style="background-color: #C6D580;" /></h1>

        <!-- end .header --></div>
        
		<div class="content">
        <script src="../Config/JS/jquery-1.8.0.min.js" type="text/javascript"></script>
		<script src="../Config/JS/maskedinput.min.js" type="text/javascript"></script>
		<script src="../Config/JS/jotform.js" type="text/javascript"></script>
		<script type="text/javascript">
		JotForm.init(function(){
      		JotForm.description('input_4', 'Nom del Empelat');			
      		JotForm.description('input_3', 'Password');	
      		JotForm.description('input_5', 'Telèfon del Empelat');		
      		JotForm.setPhoneMaskingValidator( 'input_5_full', ' #########' );			
			 $('input_6').hint('ex: [email protected]');
      		JotForm.description('input_6', 'E-Mail');
      		JotForm.alterTexts({"alphabetic":"Aquest camp solament pot contenir lletres",
			                    "alphanumeric":"Aquest camp solament pot contenir lletres i *numeros",
								"confirmClearForm":"Estas segur que desitges netejar el formulari",
								"confirmEmail":"Correu electrònic no coincideix",
								"email":"*Direccion de correu INVALIDA",
								"gradingScoreError":"Puntuació total de només ha de ser menor o igual a",
								"incompleteFields":"Els camps requerits *estan incomplets. *Porfavor *completelos abans de continuar",
								"inputCarretErrorA":"L'entrada no pot ser menor que el valor mínim:",
								"inputCarretErrorB":"L'entrada ha de ser menor al valor:",
								"lessThan":"La seva puntuació ha de ser menor que o igual a",
								"maxDigitsError":"El màxim de dígits permès és",
								"numeric":"Aquest camp solament pot contenir *numeros",
								"pleaseWait":"*Porfavor esperi...",
								"required":"Aquest Camp és Obligatori",
								"requireEveryRow":"Es requereix que cada fila.",
								"requireOne":"Almenys un camp requerit.",
								"submissionLimit":"Ho sento! Només es permet una entrada.<*br>Múltiples enviaments estan desactivats per a aquest formulari.",
								"uploadExtensions":"Només pot carregar arxius següents:",
								"uploadFilesize":"Grandària de l'arxiu no pot ser major que:"});
	   });
       </script>
       <div class="form-all">
         <ul class="form-section">
          <li class="form-line form-line-column" id="id_1">
        		<label class="form-label-top" id="label_1" for="input_1">ID de L'empleat<span class="form-required">*</span></label>
		        <div id="cid_1" class="form-input-wide">
			<input type="text" class=" form-textbox validate[required, Alphabetic]" data-type="input-textbox" id="input_1" name="ID_Empleado" size="30" value="<?=$_GET['id']+1?>" readonly/>
                </div>
	      </li> 
          <li class="form-line form-line-column" id="id_4">
        	<label class="form-label-top" id="label_4" for="input_4">Nom de L'empleat<span class="form-required">*</span></label>
        		<div id="cid_4" class="form-input-wide">
        			<span class="form-sub-label-container">
                        <input type="text" class=" form-textbox" data-type="input-textbox" id="input_4" name="Nombre" size="30" />
                		
               		</span>
        		</div>
      	</li>
	      <li class="form-line form-line-column" id="id_3">
          		<label class="form-label-top" id="label_3" for="input_3">Password<span class="form-required">*</span></label>
		    <div id="cid_3" class="form-input-wide">
        		<input type="password" class=" form-textbox validate[required, Numeric]" data-type="input-textbox" id="input_3" name="Pass" size="30" required />
        	</div>
     	 </li>

      	<li class="form-line form-line-column" id="id_5">
        	<label class="form-label-top" id="label_5" for="input_5"> Telèfon </label>
            <div id="cid_13" class="form-input-wide">
				<input data-type="mask-number" class="mask-phone-number form-textbox" type="tel" name="Telefono" id="input_5_full" autocomplete="off">
            	<label class="form-sub-label" for="input_5_full"> </label>
	        </div>
    	</li>
      	<li class="form-line form-line-column" id="id_6">
        	<label class="form-label-top" id="label_6" for="input_6"> E-Mail </label>
	        <div id="cid_" class="form-input-wide">
    	      <input type="email" class=" form-textbox validate[required, Email]" id="input_6" name="Email" size="30" />
			</div>
      	</li>
    </ul>
     
   
      <br><br><br><br><br>
		<!-- end .content --></div>
        
		<div class="footer">
	   <button id="input_2" type="Enviar" class="form-submit-button" >Enviar Formulari</button>
	    &nbsp;
   		<button id="input_reset_2" type="reset" class="form-submit-reset" >Natejar Formulari</button>
  	  <!-- end .footer --></div>
        </form> 
  <!-- cierra el codigo php -->
	<!-- end .container -->
</body>
</html>
  #6 (permalink)  
Antiguo 10/07/2013, 04:59
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

el codigo del php donde se hacen las comprovaciones Y DONDE ESTAN LOS ALERTS QUE FALLAN es este:
Código:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!-- TemplateBeginEditable name="doctitle" -->
<LINK REL="Shortcut Icon" HREF="../Config/Imagenes/Copy.ico"> 
<title>Copisteria Imatge - AFEGIR</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link rel="stylesheet" type="text/css" href="../Config/CSS/HTML5_thrColFixHdr.css"/>
<link rel="stylesheet" type="text/css" href="../Config/CSS/Unificacion.css"/>
<link rel="stylesheet" type="text/css" href="../Config/CSS/formCssSINREPETICIONES.css"/>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>

<body>
	<div class="container">
  		<form class="jotform-form" action="../Insert/Comprobaciones/Tecnico.php" method="post" name="Form_31484046338354" id="31484046338354" accept-charset="utf-8">
        <div class="header">
          <h1>AFEGIR - TÈCNIC
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <img src="../Config/Imagenes/Copy.jpg" alt="Copisteria Imatge" width="309" height="114" id="Insert_logo" style="background-color: #C6D580;" /></h1>

        <!-- end .header --></div>
        
		<div class="content">
        <script src="../Config/JS/jquery-1.8.0.min.js" type="text/javascript"></script>
		<script src="../Config/JS/maskedinput.min.js" type="text/javascript"></script>
		<script src="../Config/JS/jotform.js" type="text/javascript"></script>
		<script type="text/javascript">
		JotForm.init(function(){
      		JotForm.description('input_4', 'Nom del Empelat');			
      		JotForm.description('input_3', 'Password');	
      		JotForm.description('input_5', 'Telèfon del Empelat');		
      		JotForm.setPhoneMaskingValidator( 'input_5_full', ' #########' );			
			 $('input_6').hint('ex: [email protected]');
      		JotForm.description('input_6', 'E-Mail');
      		JotForm.alterTexts({"alphabetic":"Aquest camp solament pot contenir lletres",
			                    "alphanumeric":"Aquest camp solament pot contenir lletres i *numeros",
								"confirmClearForm":"Estas segur que desitges netejar el formulari",
								"confirmEmail":"Correu electrònic no coincideix",
								"email":"*Direccion de correu INVALIDA",
								"gradingScoreError":"Puntuació total de només ha de ser menor o igual a",
								"incompleteFields":"Els camps requerits *estan incomplets. *Porfavor *completelos abans de continuar",
								"inputCarretErrorA":"L'entrada no pot ser menor que el valor mínim:",
								"inputCarretErrorB":"L'entrada ha de ser menor al valor:",
								"lessThan":"La seva puntuació ha de ser menor que o igual a",
								"maxDigitsError":"El màxim de dígits permès és",
								"numeric":"Aquest camp solament pot contenir *numeros",
								"pleaseWait":"*Porfavor esperi...",
								"required":"Aquest Camp és Obligatori",
								"requireEveryRow":"Es requereix que cada fila.",
								"requireOne":"Almenys un camp requerit.",
								"submissionLimit":"Ho sento! Només es permet una entrada.<*br>Múltiples enviaments estan desactivats per a aquest formulari.",
								"uploadExtensions":"Només pot carregar arxius següents:",
								"uploadFilesize":"Grandària de l'arxiu no pot ser major que:"});
	   });
       </script>
       <div class="form-all">
         <ul class="form-section">
          <li class="form-line form-line-column" id="id_1">
        		<label class="form-label-top" id="label_1" for="input_1">ID de L'empleat<span class="form-required">*</span></label>
		        <div id="cid_1" class="form-input-wide">
			<input type="text" class=" form-textbox validate[required, Alphabetic]" data-type="input-textbox" id="input_1" name="ID_Empleado" size="30" value="<?=$_GET['id']+1?>" readonly/>
                </div>
	      </li> 
          <li class="form-line form-line-column" id="id_4">
        	<label class="form-label-top" id="label_4" for="input_4">Nom de L'empleat<span class="form-required">*</span></label>
        		<div id="cid_4" class="form-input-wide">
        			<span class="form-sub-label-container">
                        <input type="text" class=" form-textbox" data-type="input-textbox" id="input_4" name="Nombre" size="30" />
                		
               		</span>
        		</div>
      	</li>
	      <li class="form-line form-line-column" id="id_3">
          		<label class="form-label-top" id="label_3" for="input_3">Password<span class="form-required">*</span></label>
		    <div id="cid_3" class="form-input-wide">
        		<input type="password" class=" form-textbox validate[required, Numeric]" data-type="input-textbox" id="input_3" name="Pass" size="30" required />
        	</div>
     	 </li>

      	<li class="form-line form-line-column" id="id_5">
        	<label class="form-label-top" id="label_5" for="input_5"> Telèfon </label>
            <div id="cid_13" class="form-input-wide">
				<input data-type="mask-number" class="mask-phone-number form-textbox" type="tel" name="Telefono" id="input_5_full" autocomplete="off">
            	<label class="form-sub-label" for="input_5_full"> </label>
	        </div>
    	</li>
      	<li class="form-line form-line-column" id="id_6">
        	<label class="form-label-top" id="label_6" for="input_6"> E-Mail </label>
	        <div id="cid_" class="form-input-wide">
    	      <input type="email" class=" form-textbox validate[required, Email]" id="input_6" name="Email" size="30" />
			</div>
      	</li>
    </ul>
     
   
      <br><br><br><br><br>
		<!-- end .content --></div>
        
		<div class="footer">
	   <button id="input_2" type="Enviar" class="form-submit-button" >Enviar Formulari</button>
	    &nbsp;
   		<button id="input_reset_2" type="reset" class="form-submit-reset" >Natejar Formulari</button>
  	  <!-- end .footer --></div>
        </form> 
  <!-- cierra el codigo php -->
	<!-- end .container -->
</body>
</html>
  #7 (permalink)  
Antiguo 10/07/2013, 04:59
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

y... no creo que te sirva, pero...
el php final que te muestra la tabla seria este:
Código:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!-- TemplateBeginEditable name="doctitle" -->
<LINK REL="Shortcut Icon" HREF="../Config/Imagenes/Copy.ico"> 
<title>Copisteria Imatge - REGISTRE</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link rel="stylesheet" type="text/css" href="../Config/CSS/HTML5_thrColFixHdr.css"/>
<link rel="stylesheet" type="text/css" href="../Config/CSS/Unificacion.css"/>
<link rel="stylesheet" type="text/css" href="../Config/CSS/formCssSINREPETICIONES.css"/>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
	<div class="container">
 		<div class="header">
        <h1><img src="../Config/Imagenes/Copy.jpg" alt="Copisteria Imatge" width="309" height="114" id="Insert_logo" style="background-color: #C6D580;" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REGISTRE - TÈCNICS</h1>
        <!-- end .header --></div>
		<div class="content">
		<html> 
<?php 
include("../Config/config.php") ;
  // Se conecta al SGBD 
  if(!($conex = mysql_connect($server,$db_user,$db_pass)))  die("Error: No se pudo conectar");
  // Selecciona la base de datos 
  if(!mysql_select_db($database, $conex)) die("Error: No existe la base de datos");
  // Sentencia SQL: muestra todo el contenido de la tabla "books" 
  $sentencia = "SELECT * FROM tecnicos"; 
  // Ejecuta la sentencia SQL 
  $resultado = mysql_query($sentencia, $conex); 
  if(!$resultado)     die("Error: no se pudo realizar la consulta");
  echo '<table border="1" cellpadding="10">';
  echo '<tr>
  		<td>ID de l'."'".'Empleat</td>
		<td>Password</td>
		<td>Nom</td>
		<td>Telèfono</td>
		<td>E-Mail</td>
		</tr>' ;
  while($fila = mysql_fetch_assoc($resultado)) 
  { 
    echo '<tr>'; 
    echo '<td>'.$fila['ID_Empleado'].'</td>
 		  <td>'.$fila['Pass'].'</td>
  		  <td>'.$fila['Nombre'].'</td>
		  <td>'.$fila['Telefono'].'</td>
  		  <td>'.$fila['Email'].'</td>'; 
    echo '</tr>'; 
  } 
  echo '</table>';
    // Libera la memoria del resultado
  mysql_free_result($resultado);
    // Cierra la conexión con la base de datos 
  mysql_close($conex); 
?> 
        <!-- end .content --></div>
		<div class="footer">
	  	<!-- end .footer --></div>
	<!-- end .container -->
</body>
</html>
TODO FUNCIONA SALVO LOS ALERTS, y pienso que...., para lanzar un alert.. lo hacemos en JavaScript, para implementar el JavaScript SIEMPRE es DESPUES de cerrar el PHP y cuando cerramos el JavaScrip, volvemos a abrir el PHP, cierto?

en el momento de cerrar el php.. no estoy librando, eliminando o como lo quieras llamar, la variable que quiero usar en el alert de JavaScript, y por lo tanto el JavaScript me dice que esta sin definir?

si es el caso, como podria solucionarlo?
  #8 (permalink)  
Antiguo 10/07/2013, 05:02
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

PERDON PERO EL OTRO POST ESTA MAL; NO SE COMO EDITARLO NI ELIMINARLO, SI ALGUN OPER ME HACE EL FAVOR... GRACIAS

el codigo del php donde se hacen las comprovaciones Y DONDE ESTAN LOS ALERTS QUE FALLAN es este:

Código:
<?php
include("../../Config/config.php") ;

$errores = array();
 
if (empty($_POST['Pass'])) {
     $errores[] = 'Falta introduir un "Pass"';
}
if (empty($_POST['Nombre'])) {
     $errores[] = 'Falta indicar el "Nom"';
}
if (empty($_POST['Email'])==FALSE) {
	if (!preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/", $_POST['Email']))
	 {
     $errores[] = 'La direccio de '.$_POST['Email'].' no esta ben escrita';	
	 }
	}
 
if (count($errores) <= 0) {

$conex=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
$bd=mysql_select_db($database) or die ("error2".mysql_error()); 
// Con estas sentencias SQL evitaremos una inyección SQL
$ID_Empleado = $_POST['ID_Empleado'];
$Pass =$_POST['Pass'];
$Nombre =$_POST['Nombre'];
$Telefono =$_POST['Telefono'];
$Email =$_POST['Email'];
// Con esta sentencia SQL Creamos la consulta
$query="
INSERT INTO tecnicos 
(ID_Empleado,Pass,Nombre,Telefono,Email)
VALUES 
('".$ID_Empleado."','".$Pass."','".$Nombre."','".$Telefono."','".$Email."')
";
// Hacemos la consulta  
mysql_query ($query) or die ("error3 <br>".mysql_error());
// Cierra la conexión con la base de datos 
mysql_close($conex); 
header('Location: ../../Log/Tecnico.php');
}else {

     foreach($errores as $error) {
		 echo '<p>'.$error.'</p>';
				 ?>
		<script type="text/javascript" >
         alert(<?php echo $error; ?>);
        </script>
		<?php
     }
	 ?>
	<button id="GoBack" type="button" onclick="history.back()" >Tornar</button>
	<?php

}
  #9 (permalink)  
Antiguo 10/07/2013, 05:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Creo que asi debería ejecutar los alert, basicamente he completado el html, he puesto los alerts en el head de html y he puesto el listado de errores en el body del fichero.

(Mira els comentaris)

Código PHP:
Ver original
  1. <?php
  2. include("../../Config/config.php") ;
  3. $errores = array();
  4. if (empty($_POST['Pass'])) {
  5.      $errores[] = 'Falta introduir un "Pass"';
  6. }
  7. if (empty($_POST['Nombre'])) {
  8.      $errores[] = 'Falta indicar el "Nom"';
  9. }
  10. if (empty($_POST['Email'])==FALSE) {
  11.     if (!preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/", $_POST['Email']))
  12.      {
  13.      $errores[] = 'La direccio de '.$_POST['Email'].' no esta ben escrita';    
  14.      }
  15.     }
  16.  
  17. if (count($errores) <= 0) {
  18.     $conex=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
  19.     $bd=mysql_select_db($database) or die ("error2".mysql_error());
  20.     // Con estas sentencias SQL evitaremos una inyección SQL
  21.     $ID_Empleado = $_POST['ID_Empleado'];
  22.     $Pass =$_POST['Pass'];
  23.     $Nombre =$_POST['Nombre'];
  24.     $Telefono =$_POST['Telefono'];
  25.     $Email =$_POST['Email'];
  26.     // Con esta sentencia SQL Creamos la consulta
  27.     $query="INSERT INTO tecnicos ".
  28.            "(ID_Empleado,Pass,Nombre,Telefono,Email) ".
  29.            "VALUES ".
  30.            "('".$ID_Empleado."','".$Pass."','".$Nombre."','".$Telefono."','".$Email."')";
  31.     // Hacemos la consulta  
  32.         mysql_query ($query) or die ("error3 <br>".mysql_error());
  33.     // Cierra la conexión con la base de datos
  34.         mysql_close($conex);
  35.         header('Location: ../../Log/Tecnico.php');
  36. }else {?>
  37.  
  38. //Abans d'imprimir res poso la capçalera de html
  39. //A mes  podrás fer servir el css per donar format als errors
  40. ?>
  41. <!doctype html>
  42. <html>
  43. <head>
  44. <meta charset="utf-8">
  45. <!-- TemplateBeginEditable name="doctitle" -->
  46. <LINK REL="Shortcut Icon" HREF="../Config/Imagenes/Copy.ico">
  47. <title>Copisteria Imatge - ERRORS</title>
  48.  
  49. <!-- Elimina el que no necesitis // -->
  50.  
  51. <!-- TemplateEndEditable -->
  52. <!-- TemplateBeginEditable name="head" -->
  53. <!-- TemplateEndEditable -->
  54. <link rel="stylesheet" type="text/css" href="../Config/CSS/HTML5_thrColFixHdr.css"/>
  55. <link rel="stylesheet" type="text/css" href="../Config/CSS/Unificacion.css"/>
  56. <link rel="stylesheet" type="text/css" href="../Config/CSS/formCssSINREPETICIONES.css"/>
  57. <!--[if lt IE 9]>
  58. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  59. <![endif]-->
  60.  
  61. <!-- Ara creo l'script javascript amb els alerts dins el head de l'HTML // -->
  62.  
  63. <script type="text/javascript" >
  64. <?php foreach($errores as $error) { ?>
  65.        alert(<?php echo $error; ?>);
  66. <?php }?>
  67. </script>
  68.  
  69. </head>
  70. <body>
  71.     <div class="container">
  72.  
  73. <!-- Ara llisto els errors com a recordatori abans del botó // -->
  74.  
  75. <?php foreach($errores as $error) { ?>
  76.        echo '<p>'.$error.'</p>';
  77. <?php }?>
  78. <br />    
  79. <br />    
  80.         <button id="GoBack" type="button" onclick="history.back()" >Tornar</button>
  81.     </div>
  82. </body>
  83. </html>
  84. <?php } ?>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #10 (permalink)  
Antiguo 11/07/2013, 05:11
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Quim muchisimas gracias por la ayuda, pero eh puesto el php que me indicas, i.. no solo no saltan los alert, sino que los mensajes que antes me salian bien, ahora, salen cosas raras y en vez d cojer el valor de $error, sale la palabra error directamente, asi que...
eh tenido que volver a la rebision anterior,

creo k como te comente, el fallo radica en que para lanzar un alert tengo que cerrar el php y hay las variables pierden toda existencia

asi que... supongo que no me quedara otra que poner los mensajes por escrito sin alert como ya lo tenia
  #11 (permalink)  
Antiguo 11/07/2013, 05:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Sorry, en la linea 75 sobra ?> y en la 77 <?php

Código PHP:
Ver original
  1. <?php foreach($errores as $error) {
  2.        echo '<p>'.$error.'</p>';
  3. }?>

o tambien podria ser así

Código PHP:
Ver original
  1. <?php foreach($errores as $error) { ?>
  2.        <p><?php echo $error; ?></p>
  3. <?php }?>

En cuanto a los alert tambien hay un error

Código PHP:
Ver original
  1. <?php foreach($errores as $error) { ?>
  2.        alert("<?php echo $error; ?>");
  3. <?php }?>

alert("<?php echo $error; ?>");

faltan las comillas en la linea 65.

PHP lo abres y lo cierras cuando quieras y dentro del mismo fichero las variables php siguen intactas, la cuestión es que al final genere un html que funcione, de hecho es lo que le llega al navegador....

Son tiempos distintos el de php y el de html+javascript....

En este caso en el head a l navegador le debe llegar

<script type="text/javascript" >
alert("Error 1");
alert("Error 2");
...etc
</script>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 11/07/2013 a las 05:29
  #12 (permalink)  
Antiguo 11/07/2013, 05:37
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

acavo de probarlo y si, efectivamente funciona bien

PEROOOOO

SIGUEN SIN SALTAR LOS PU****SS ALERTS
  #13 (permalink)  
Antiguo 11/07/2013, 05:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Fes això...Lineas 63 a 70:

Código PHP:
Ver original
  1. <script type="text/javascript" >
  2. function avisos(){
  3. <?php foreach($errores as $error) { ?>
  4.        alert("<?php echo $error; ?>");
  5. <?php }?>
  6. }
  7. </script>
  8.  
  9. </head>
  10. <body onload="avisos();">
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #14 (permalink)  
Antiguo 11/07/2013, 06:09
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOLLL

ENCONTRE EL FALLO

Muchisimas gracias quim por tu ayuda
pero como ves, el fallo era mucho mas tonto:

lo eh dejado asi:
Código:
<script type="text/javascript" >
<?php foreach($errores as $error) { ?>
       alert('<?php echo $error; ?>');
<?php }?>
</script>
dentro del Head

y como dices, es correcto al ejecutarse el php en servidor y llegar html plano al usuario... el alert que me llegava cojia los valores y se quedava de la siguiente manera:

Código:
<script type="text/javascript" >
       alert('Falta introduir un "Pass"');
       alert('Falta indicar el "Nom"');
</script>
donde estava el fallo???
EN LAS PU***SS " " " "

TODOS sabemos k un alert empieza por ' y termina por '
si queremos poner commillas dentro... empiezan por " y terminan por "

y asi succesibamente, total:
la variable que le paso tiene un texto: falta introduir " Pass "
solamente eh cambiado los "" del alert por unos '' para seguir con la norma, y todo perfecto
  #15 (permalink)  
Antiguo 11/07/2013, 06:17
 
Fecha de Ingreso: junio-2013
Mensajes: 29
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

mas claro:
Código:
<script type="text/javascript" >
<?php foreach($errores as $error) { ?>
       alert("<?php echo $error; ?>");
<?php }?>
</script>
este ph genera este html:
Código:
<script type="text/javascript" >
       alert("Falta introduir un "Pass"");
       alert("Falta indicar el "Nom"");
</script>

los:
Código:
       alert("Falta introduir un "Pass"");
       alert("Falta indicar el "Nom"");
fallan, para ser correctos tiene que ir:
Código:
       alert('Falta introduir un "Pass"');
       alert('Falta indicar el "Nom"');
como conseguimos esto?
poniendo en nuestro codigo php:
Código:
<script type="text/javascript" >

<?php foreach($errores as $error) { ?>
       alert('<?php echo $error; ?>');
<?php }?>
</script>
y al llegar al cliente en formato html llegara

Código:
<script type="text/javascript" >
       alert('Falta introduir un "Pass"');
       alert('Falta indicar el "Nom"');
</script>
QUE, LOGICAMENTE; FUNCIONA
  #16 (permalink)  
Antiguo 11/07/2013, 06:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problemas con el alert, NO MUESTRA EL VALOR DE UNA VARIABLE

Felicitats!!! Bien visto.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 11/07/2013 a las 06:24

Etiquetas: muestra, php, valor, variable
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 10:37.