Foros del Web » Programando para Internet » PHP »

No puedo incluir <? echo x; ?> en un script java...

Estas en el tema de No puedo incluir <? echo x; ?> en un script java... en el foro de PHP en Foros del Web. Hola gente, No se si va en esta sección, pero creo que si, ya que el problema lo tengo con variables de PHP dentro de ...
  #1 (permalink)  
Antiguo 20/02/2007, 15:05
Avatar de BooMeranGz  
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 2 meses
Puntos: 0
Exclamación No puedo incluir <? echo x; ?> en un script java...

Hola gente,

No se si va en esta sección, pero creo que si, ya que el problema lo tengo con variables de PHP dentro de javascript.

Estoy usando un formulario y en el valido los datos de cada campo ingresado con javascript.

Como es un formulario multilenguaje, en otros files defino constantes del tipo:

Código PHP:
<?
define
("errMsg01""ERROR: Debe copiar el 'texto de verificación' para continuar.");
define("errMsg02""ERROR: El campo 'Información a solicitar:' es Obligatorio.<br>Por favor escriba la información que desea solicitar");
define("errMsg09""ERROR: El campo 'Nombre:' es Obligatorio. Por favor escriba su nombre");
?>
Y en esta página del formulario necesito que esas constantes de php sean reemplazadas en cada mensaje de error emitido.

Esto me funciona bien en todo el sitio, pero no para este javascript.

Quiero aclarar que este java lo hice con una extensión de Dreamweaver, yo de java no se casi nada.

Bueno, en si, este es el script que valida:

Código HTML:
<script language="Javascript">
<!--
function VF_formulario(){ //v2.0
var theForm = document.formulario;
var alphaRE = /^[a-zA-Z0-9]+$/;
var emailRE = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
var userRE5 = new RegExp("^((0)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(-)|(\\()|(\\))|(\\[)|(]))+$","g");
var userRE4 = new RegExp("^((0)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(-)|(\\()|(\\))|(\\[)|(]))+$","g");
var errMsg = "";
var setfocus = "";

if (theForm['txtRandImage'].value == ""){
    errMsg = "ERROR: Debe copiar el \'texto de verificación\' para continuar\.";
    setfocus = "['txtRandImage']";
}

if (theForm['infosolicitada'].value == ""){
    errMsg = "ERROR: El campo \'Información a solicitar:\' es Obligatorio\. Por favor escriba la información que desea solicitar\.";
    setfocus = "['infosolicitada']";
}

if (theForm['seltel'].checked){
 if (theForm['tel'].value == "" && theForm['telcel'].value == ""){
        errMsg = "ERROR: No puede seleccionar la casilla \'Teléfono\' en \'¿Su preferencia de contacto?\' si no ha ingresado ningún número telefónico anteriormente. Por favor, ingrese algún número telefónico si desea ser contactado por esta vía\.";
        setfocus = "['seltel']";
    }
}

if (theForm['telcel'].value != ""){
    if (!userRE5.test(theForm['telcel'].value)){
        errMsg = "ERROR: El campo \'Teléfono celular:\' solo PERMITE los caracteres \'0,1,2,3,4,5,6,7,8,9,\-,\(,\),\[,\]\'\. Por favor verifíquelo\.";
     setfocus = "['telcel']";
    }
}

if (theForm['tel'].value != ""){
    if (!userRE4.test(theForm['tel'].value)){
        errMsg = "ERROR: El campo \'Teléfono:\' solo PERMITE los caracteres \'0,1,2,3,4,5,6,7,8,9,\-,\(,\),\[,\]\'\. Por favor verifíquelo\.";
        setfocus = "['tel']";
    }
}

if (theForm['emailv'].value == "" || (theForm['emailv'].value != theForm['email'].value)){
    errMsg = "ERROR: El E\-mail ingresado en \"Su E\-mail nuevamente\" no es el mismo que el que ingresó anteriormente\. Por favor verifíquelo\.";
    setfocus = "['emailv']";
}

if (!emailRE.test(theForm['email'].value)){
    errMsg = "ERROR: El campo \'E\-mail:\' es Obligatorio\. Por favor escriba su E\-mail\.";
    setfocus = "['email']";
}

if (!alphaRE.test(theForm['apellido'].value)){
    errMsg = "ERROR: El campo \'Apellido:\' es Obligatorio\. Por favor escriba su apellido\.";
    setfocus = "['apellido']";
}

if (!alphaRE.test(theForm['nombre'].value)){
    errMsg = "ERROR: El campo \'Nombre:\' es Obligatorio\. Por favor escriba su nombre\.";
    setfocus = "['nombre']";
}

if (errMsg != ""){
    alert(errMsg);
    eval("theForm" + setfocus + ".focus()");
}
else theForm.submit();
}
//-->
</script> 
Y necesito que me quede asi, con el php incluido:

Código HTML:
<script language="Javascript">
<!--
function VF_formulario(){ //v2.0
var theForm = document.formulario;
var alphaRE = /^[a-zA-Z0-9]+$/;
var emailRE = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
var userRE5 = new RegExp("^((0)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(-)|(\\()|(\\))|(\\[)|(]))+$","g");
var userRE4 = new RegExp("^((0)|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(-)|(\\()|(\\))|(\\[)|(]))+$","g");
var errMsg = "";
var setfocus = "";

if (theForm['txtRandImage'].value == ""){
    errMsg = "<? echo $errMsg01; ?>";
    setfocus = "['txtRandImage']";
}

if (theForm['infosolicitada'].value == ""){
    errMsg = "<? echo $errMsg02; ?>";
    setfocus = "['infosolicitada']";
}

if (theForm['seltel'].checked){
 if (theForm['tel'].value == "" && theForm['telcel'].value == ""){
        errMsg = "<? echo $errMsg03; ?>";
        setfocus = "['seltel']";
    }
}

if (theForm['telcel'].value != ""){
    if (!userRE5.test(theForm['telcel'].value)){
        errMsg = "<? echo $errMsg04; ?>";
     setfocus = "['telcel']";
    }
}

if (theForm['tel'].value != ""){
    if (!userRE4.test(theForm['tel'].value)){
        errMsg = "<? echo $errMsg05; ?>";
        setfocus = "['tel']";
    }
}

if (theForm['emailv'].value == "" || (theForm['emailv'].value != theForm['email'].value)){
    errMsg = "<? echo $errMsg06; ?>";
    setfocus = "['emailv']";
}

if (!emailRE.test(theForm['email'].value)){
    errMsg = "<? echo $errMsg07; ?>";
    setfocus = "['email']";
}

if (!alphaRE.test(theForm['apellido'].value)){
    errMsg = "<? echo $errMsg08; ?>";
    setfocus = "['apellido']";
}

if (!alphaRE.test(theForm['nombre'].value)){
    errMsg = "<? echo $errMsg09; ?>";
    setfocus = "['nombre']";
}

if (errMsg != ""){
    alert(errMsg);
    eval("theForm" + setfocus + ".focus()");
}
else theForm.submit();
}
//-->
</script> 
Creo que se entiende.

Si alguien me tira una ayuda se lo agradeceré, ya que estoy enredado con esto y no se como sacarlo adelante.

Muchas gracias de antemano.

Salu2.
  #2 (permalink)  
Antiguo 20/02/2007, 15:11
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: No puedo incluir <? echo x; ?> en un script java...

Prueba asi:

Código PHP:
<? echo errMsg01?>";


sin el $. Eso es porque estas usando la funcion define, la cual crea constantes y no variables:

http://www.php.net/constants
http://www.php.net/define

Un saludo,
  #3 (permalink)  
Antiguo 20/02/2007, 15:14
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: No puedo incluir <? echo x; ?> en un script java...

Cita:
Iniciado por php.net
Estas son las diferencias entre constantes y variables:
  • Las constantes no son precedidas por un símbolo de dolar ($)
  • Las contantes solo pueden ser definidas usando la función() define , nunca por simple asignación
  • Las constantes pueden ser definidas y accedidas sin tener en cuenta las reglas de alcanze del ámbito.
  • Las constantes no pueden ser redefinidas o eliminadas despues de establecerse; y
  • Las constantes solo puede albergar valores escalares
Un saludo,
  #4 (permalink)  
Antiguo 20/02/2007, 15:46
Avatar de BooMeranGz  
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: No puedo incluir <? echo x; ?> en un script java...

Gracias, pero eso no me funciona, ya lo he probado.

Cuando incluyo esos php, el formulario directamente se salta toda la validación es como que deja de funcionar.

Creo que se debe a la estructura en si de este java, ya que uno se ejecuta del lado del cliente y el otro del lado del servidor, pero no veo la solución...
  #5 (permalink)  
Antiguo 20/02/2007, 16:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: No puedo incluir <? echo x; ?> en un script java...

bien, en todo caso, que es lo que falla el php o el codigo java?. Esos pedazos de php, t devuelven los mensajes que deben devolver? si es asi, el error esta en tu js, sino, el error es de php. Usando <?php echo errMsg01; ?> como queda el codigo que recibe el navegador.??

Un saludo,
  #6 (permalink)  
Antiguo 20/02/2007, 16:33
Avatar de BooMeranGz  
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: No puedo incluir <? echo x; ?> en un script java...

Mira, es cierto, sin $ me aparece el mensaje de error, pero igual el java deja
de funcionar, no se si porque aparece de la forma:

errMsg = "
ERROR: El campo 'Apellido:' es Obligatorio. Por favor escriba su apellido.";

O sea, no sigue en la misma linea de la variable.

Estimo que falla el código javasript, ya que los valores de php se ven en la página cargada.

Por ejemplo:

- Parte del cod. java Original:
Código HTML:
if (!alphaRE.test(theForm['nombre'].value)){
    errMsg = "ERROR: El campo \'Nombre:\' es Obligatorio\. Por favor escriba su nombre\.";
    setfocus = "['nombre']";
}
Se carga en el navegador:
Código HTML:
if (!alphaRE.test(theForm['nombre'].value)){
    errMsg = "ERROR: El campo \'Nombre:\' es Obligatorio\. Por favor escriba su nombre\.";
    setfocus = "['nombre']";
}
Parte del cod. java con php y $:
Código HTML:
 if (!alphaRE.test(theForm['nombre'].value)){
    errMsg = "<? echo $errMsg09; ?>";
    setfocus = "['nombre']";
}
Se carga en el navegador:
Código HTML:
 if (!alphaRE.test(theForm['nombre'].value)){
    errMsg = "";
    setfocus = "['nombre']";
}
Parte del cod. java con php y sin $:
Código HTML:
 if (!alphaRE.test(theForm['nombre'].value)){
    errMsg = "<? echo errMsg09; ?>";
    setfocus = "['nombre']";
}
Se carga en el navegador:
Código HTML:
 if (!alphaRE.test(theForm['nombre'].value)){
    errMsg = "
ERROR: El campo 'Apellido:' es Obligatorio. Por favor escriba su apellido.";
    setfocus = "['nombre']";
}
Creo que tienes razón sobre $, pero parece que el error sigue...
  #7 (permalink)  
Antiguo 20/02/2007, 17:08
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: No puedo incluir <? echo x; ?> en un script java...

mmmmm....

bueno, te puedo sugerir esto, aunque la verdad no entiendo a que se debe ese error:

en vez de:
Código PHP:
errMsg = "<? echo errMsg01?>";
coloca:
Código PHP:
<?php echo "errMsg = \"".errMsg01."\";"?>
Un saludo
</EM>
  #8 (permalink)  
Antiguo 20/02/2007, 17:33
Avatar de BooMeranGz  
Fecha de Ingreso: febrero-2001
Mensajes: 350
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: No puedo incluir <? echo x; ?> en un script java...

okram, sos un genio, ¡GRACIAS! ahora SI funciona...

Gracias realmente por la ayuda y especialmente por tus respuestas tan rápidas, me sacaste de un gran problema.

Salu2.
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 15:35.