Foros del Web » Programando para Internet » PHP »

Ayudenme a resolver este problema al mostrar enlace

Estas en el tema de Ayudenme a resolver este problema al mostrar enlace en el foro de PHP en Foros del Web. Hola a todos en Foros del Web, de nuevo aca solicitando su ayuda. El problema es que tengo la siguiente cadena que deseo imprimir: echo ...
  #1 (permalink)  
Antiguo 23/11/2009, 10:52
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Exclamación Ayudenme a resolver este problema al mostrar enlace

Hola a todos en Foros del Web, de nuevo aca solicitando su ayuda.

El problema es que tengo la siguiente cadena que deseo imprimir:

echo "<li id='foli1'><div><span class=" . $posicion . "><label class='desc' id=" . $ac['codmarc'] . "for='Field1'>" . $ac['titulomarc'] . ":</label><input type='text' class='field text medium' name=" . $ac['titulomarc'] . " id=" . $ac['codmarc'] . "/></span>";


Explico el codigo:

$posicion es una variable que me permite alternar la ubicacion de los text y los labels hacia la izquierda o hacia la derecha

$ac['codmarc'] y $ac['titulomarc'] es un arreglo que viene de mi base de datos que contiene el resultado de la siguiente consulta: select * from "marcseleccionados" where idtipomaterial='. $idmaterial . 'ORDER BY codmarc.

Lo que deseo es agregar el siguiente enlace justo antes de cerrar la tag </label>. Lo tengo de la siguiente manera pero no me resulta.

<a href="javascript:abrirVentanaEmergente(../analisis/ayuda/ayuda_marc.php?codigomarc='$id');">Ver info</a>

AbrirVentanaEmergente es una funcion que contiene esto:

Cita:
window.open(href,"","width=680, height=440, toolbar=no, scrollbars=yes, resizable=no, screenX=400,screenY=300");
, por lo tanto solo le paso la URL y deberia de mostrarme la ventana, pero no lo logro resolver

Muchas gracias por su ayuda de antemano :D
Es urgente por favor ayuda!!!!!
  #2 (permalink)  
Antiguo 23/11/2009, 11:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Ayudenme a resolver este problema al mostrar enlace

Que es lo k kieres exactamente? no logro entenderte mor mucho k lo leo xDD kieres meter un link antes del label? no entiendo pk no te ha de dejar? lo añades al echo y ya esta no?

k es lo k no te deja hacer? poner el link en el echo o al ejecutarlo y hacer clic en el link no te muestra la ventana? es decir cual es el problema?

Usas ajax?
  #3 (permalink)  
Antiguo 23/11/2009, 11:26
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: Ayudenme a resolver este problema al mostrar enlace

Lo que deseo es incluirlo dentro del echo pero me sale error de sintaxis, supongo que por formato de la cadena que envio al adjuntar el enlace dentro de la cadena existente xD

sorry por no explicarme bn
  #4 (permalink)  
Antiguo 23/11/2009, 11:30
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Ayudenme a resolver este problema al mostrar enlace

Si estas colocando el link dentro de una cadena delimitada con comillas " debes escapar con \ las comillas que contiene el codigo del link
  #5 (permalink)  
Antiguo 23/11/2009, 11:40
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Ayudenme a resolver este problema al mostrar enlace

Cita:
Iniciado por equality_211085 Ver Mensaje
Lo que deseo es incluirlo dentro del echo pero me sale error de sintaxis, supongo que por formato de la cadena que envio al adjuntar el enlace dentro de la cadena existente xD

sorry por no explicarme bn
a vale xDDD pues nada el codigo deberia ir asi:

Código PHP:
echo "<li id='foli1'><div><span class=" $posicion "><label class='desc' id=" $ac['codmarc'] . "for='Field1'>" $ac['titulomarc'] . ":<a href=\"javascript:abrirVentanaEmergente(../analisis/ayuda/ayuda_marc.php?codigomarc='$id');\">Ver info</a></label><input type='text' class='field text medium' name=" $ac['titulomarc'] . " id=" $ac['codmarc'] . "/></span>"
  #6 (permalink)  
Antiguo 23/11/2009, 11:53
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
gracias amigo, voy a probar tu codigo, te aviso como me fue despues :D

Gracias de todos modos :P

Hola Catalon siento decirte que el codigo que me enviaste, me despliega el enlace, eso esta bien, pero no me abre la ventana emergente al darle click, es que vos sabes que tengo la funcion abrirVentanaEmergente(url), la que recibe el enlace que va a cargar la ventana emergente. Cuando copio la ruta del enlace me manda la siguiente URL: javascript:abrirVentanaEmergente(../analisis/ayuda/ayuda_marc.php?codigomarc='020%20%20%20%20%20%20%2 0%20%20%20%20%20');

Por lo cual el resultado correcto deberia de ser: javascript:abrirVentanaEmergente('../analisis/ayuda/ayuda_marc.php?codigomarc=020');

Espero ayuda plz :p

Última edición por GatorV; 23/11/2009 a las 12:06
  #7 (permalink)  
Antiguo 23/11/2009, 12:10
 
Fecha de Ingreso: junio-2008
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayudenme a resolver este problema al mostrar enlace

el problema es que tenes que escapar las comillas dobles:

tu string esta entre comillas dobles (").
y el link que queres poner tiene comillas dobles por todos lados..

por la tanto tenes dos opciones o usuas comillas simples en el link (') o escapas las comillas dones del link (\"). se entiende?
  #8 (permalink)  
Antiguo 23/11/2009, 12:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Ayudenme a resolver este problema al mostrar enlace

cuando envias el id prueba a concatenarlo en lugar de ponerlo entre comillas simples, osea:
Cita:
echo "<li id='foli1'><div><span class=" . $posicion . "><label class='desc' id=" . $ac['codmarc'] . "for='Field1'>" . $ac['titulomarc'] . ":<a href=\"javascript:abrirVentanaEmergente(../analisis/ayuda/ayuda_marc.php?codigomarc='". $id ."');\">Ver info</a></label><input type='text' class='field text medium' name=" . $ac['titulomarc'] . " id=" . $ac['codmarc'] . "/></span>";
edit: jajaja se me han adelantado por un minuto en un reply k e puesto antes de contestar aki, y luego aki me pasa lo mismo... xDD llego tarde siempre ;)
  #9 (permalink)  
Antiguo 23/11/2009, 14:43
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: Ayudenme a resolver este problema al mostrar enlace

Hola J4v13r probando el codigo que me envio Catalon lo he probado y no me ha funcionado todavia

Cita:
echo "<li id='foli1'><div><span class=" . $posicion . "><label class='desc' id=" . $ac['codmarc'] . "for='Field1'>" . $ac['titulomarc'] . ":<a href=\"javascript:abrirVentanaEmergente(../analisis/ayuda/ayuda_marc.php?codigomarc='". $id ."');\">Ver info</a></label><input type='text' class='field text medium' name=" . $ac['titulomarc'] . " id=" . $ac['codmarc'] . "/></span>";
Gracias por todo Catalon pero todavia no le encuentro solucion a esto
:(
Será que me pueden ayudar????
Disculpen la molestia
  #10 (permalink)  
Antiguo 23/11/2009, 17:34
Avatar de arthpix  
Fecha de Ingreso: diciembre-2003
Ubicación: Cancún
Mensajes: 2.340
Antigüedad: 20 años, 4 meses
Puntos: 93
Respuesta: Ayudenme a resolver este problema al mostrar enlace

Es muy complejo... Podrías poner un ejemplo de cómo quieres que quede tu html completo sin php?

Veo por ejemplo que hay un <div> que no se cierra y varias comillas simples no puestas al concatenar que no están"terminando las sentencias html, por ejemplo:
Cita:
<span class='" . $posicion . "'><label class='desc' id='" . $ac['codmarc'] . "' for='Field1'>
Puede que se te haga más sencillo intercalar código php con htmlen vez de armar un echo muy complejo, por ejemplo:

Código php:
Ver original
  1. <?php
  2. // Inicio de codigo... lo que sea
  3. // Cerramos el codigo php para volver a abrirlo más adelante, donde sea necesario
  4. ?>
  5. <!-- Aqui iniciamos codigo html -->
  6. <span class="<?  echo $posicion; ?>">
  7.   <label class="desc" id="<?  echo $ac["codmarc"]; //Combinado con codigo php ?>" for="field1">
  8. <!-- Asi sucesivamente, combinando html con php -->
  9. <?
  10. // Aqui volvemos a abrir codigo php para cerrar el documento si es necesario...
  11. // Fin de codigo php
  12. ?>
__________________
Antes de hacer rabietas infórmate: Linux != Windows
  #11 (permalink)  
Antiguo 24/11/2009, 03:42
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Ayudenme a resolver este problema al mostrar enlace

La verdad no tiene mucho misterio, como dice arthpix tienes algunos errores con las comillas y eso.

Y por otro lado pk tantos montones de li's divs spans labels.... hacen todo lo mismo...... Puedes poner el codigo completo para k veamos donde se cierran esos divs etc....
  #12 (permalink)  
Antiguo 24/11/2009, 08:49
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: Ayudenme a resolver este problema al mostrar enlace

Cita:
La verdad no tiene mucho misterio, como dice arthpix tienes algunos errores con las comillas y eso.

Y por otro lado pk tantos montones de li's divs spans labels.... hacen todo lo mismo...... Puedes poner el codigo completo para k veamos donde se cierran esos divs etc....
Hola Catalon, gracias por el interes y a J4v13r tambén , no queria colocar el codigo completo porque se iba a hacer muy extenso pero ni modo aca esta la version completa del fuente:

<?php

$posicion;
$cambio = false;
$contador = 0;


foreach($array_campos as $ac){ /* aqui $array_campos contiene el array de mi base de datos (postgresql) y empiezo a iterar por los elementos para imprimirlos */

if($cambio == false){ /* $cambio es una variable que me permite controlar si el label junto con el text se posicionara a la izquierda o derecha (este estilo lo tengo en un css aparte). La inicializo en false para que el primer elemento del form me aparezca alineado a la izquierda, el siguiente a la derecha, el otro a la izquierda y asi consecutivamente.
$posicion = "left";
$cambio = true;
}else{
$posicion = "right";
$cambio = false;
}

if($contador%2 == 0){ /* $contador le saco modulo de dos ya que al mostrar el label junto con su text tiene que ir de par en par (uno a la izquierda y otro a la derecha */
$id = $ac['codmarc'];
echo "<li id='foli1'><div><span class=" . $posicion . "><label class='desc' id=" . $ac['codmarc'] . "for='Field1'>" . $ac['titulomarc'] . ":<a href=\"javascript:abrirVentanaEmergente(../analisis/ayuda/ayuda_marc.php?codigomarc='". $id ."');\">Ver info</a></label><input type='text' class='field text medium' name=" . $ac['titulomarc'] . " id=" . $ac['codmarc'] . "/></span>";
$contador = $contador + 1;
}else{ /* cuando llega al else significa que llego a colocar un elemento hacia la derecha y por tanto puede cerrar las tags que deje abiertas cuando se cumplia la condicion del if). En pocas palabras cada pareja de campos del formulario a imprimir van dentro de una lista */
echo '<span class="' . $posicion . '"><label class="desc">'. $ac['titulomarc'] . ': </label><input type="text" class="field text medium" name="' . $ac['titulomarc'] .'" id="' . $ac['codmarc'] . '" /></span></div></li>';
$contador = $contador + 1;
}
}?>

Aca envio una pantalla del formulario despues de ejecutar este codigo, disculpen pero no puedo poner el http, solo lo agregan a lo que sigue, lo hago porque aun no tengo permiso de publicar enlaces

pastoral.uca.edu.ni/captura_formulario.jpg

Muchas gracias de nuevo, espero que me puedan ayudar
  #13 (permalink)  
Antiguo 24/11/2009, 09:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Ayudenme a resolver este problema al mostrar enlace

Cita:
Iniciado por equality_211085 Ver Mensaje
Hola Catalon, gracias por el interes y a J4v13r tambén , no queria colocar el codigo completo porque se iba a hacer muy extenso pero ni modo aca esta la version completa del fuente:

<?php

$posicion;
$cambio = false;
$contador = 0;


foreach($array_campos as $ac){ /* aqui $array_campos contiene el array de mi base de datos (postgresql) y empiezo a iterar por los elementos para imprimirlos */

if($cambio == false){ /* $cambio es una variable que me permite controlar si el label junto con el text se posicionara a la izquierda o derecha (este estilo lo tengo en un css aparte). La inicializo en false para que el primer elemento del form me aparezca alineado a la izquierda, el siguiente a la derecha, el otro a la izquierda y asi consecutivamente.
$posicion = "left";
$cambio = true;
}else{
$posicion = "right";
$cambio = false;
}

if($contador%2 == 0){ /* $contador le saco modulo de dos ya que al mostrar el label junto con su text tiene que ir de par en par (uno a la izquierda y otro a la derecha */
$id = $ac['codmarc'];
echo "<li id='foli1'><div><span class=" . $posicion . "><label class='desc' id=" . $ac['codmarc'] . "for='Field1'>" . $ac['titulomarc'] . ":<a href=\"javascript:abrirVentanaEmergente(../analisis/ayuda/ayuda_marc.php?codigomarc='". $id ."');\">Ver info</a></label><input type='text' class='field text medium' name=" . $ac['titulomarc'] . " id=" . $ac['codmarc'] . "/></span>";
$contador = $contador + 1;
}else{ /* cuando llega al else significa que llego a colocar un elemento hacia la derecha y por tanto puede cerrar las tags que deje abiertas cuando se cumplia la condicion del if). En pocas palabras cada pareja de campos del formulario a imprimir van dentro de una lista */
echo '<span class="' . $posicion . '"><label class="desc">'. $ac['titulomarc'] . ': </label><input type="text" class="field text medium" name="' . $ac['titulomarc'] .'" id="' . $ac['codmarc'] . '" /></span></div></li>';
$contador = $contador + 1;
}
}?>

Aca envio una pantalla del formulario despues de ejecutar este codigo, disculpen pero no puedo poner el http, solo lo agregan a lo que sigue, lo hago porque aun no tengo permiso de publicar enlaces

pastoral.uca.edu.ni/captura_formulario.jpg

Muchas gracias de nuevo, espero que me puedan ayudar

E intentado revisar todo el tema de comillas, te haces un lio tremendo, a ver si este codigo te sirve:

Código PHP:
<?php

$posicion
;        
$cambio false;
$contador 0;


foreach(
$array_campos as $ac){ /* aqui $array_campos contiene el array de mi base de datos (postgresql) y empiezo a iterar por los elementos para imprimirlos */

        
if($cambio == false){ /* $cambio es una variable que me permite controlar si el label junto con el text se posicionara a la izquierda o derecha (este estilo lo tengo en un css aparte). La inicializo en false para que el primer elemento del form me aparezca alineado a la izquierda, el siguiente a la derecha, el otro a la izquierda y asi consecutivamente.
                     $posicion = "left";
            $cambio = true;            
        }else{
            $posicion = "right";
            $cambio = false;
        }
        
    if($contador%2 == 0){ /* $contador le saco modulo de dos ya que al mostrar el label junto con su text tiene que ir de par en par (uno a la izquierda y otro a la derecha */
        
$id $ac['codmarc'];
            echo 
"<li id=\"foli1\"><div><span class=\"" $posicion "\"><label class=\"desc\" id=\"" $ac['codmarc'] . "\" for=\"Field1\">" $ac['titulomarc'] . ":<a href=\"javascript:abrirVentanaEmergente(../analisis/ayuda/ayuda_marc.php?codigomarc='"$id ."');\">Ver info</a></label><input type=\"text\" class=\"field text medium\" name=\"" $ac['titulomarc'] . "\" id=\"" $ac['codmarc'] . "\"/></span>";
            
$contador $contador 1;
    }else{ 
/* cuando llega al else significa que llego a colocar un elemento hacia  la derecha y por tanto puede cerrar las tags que deje abiertas cuando se cumplia la condicion del if). En pocas palabras cada pareja de campos del formulario a imprimir van dentro de una lista */
            
echo "<span class=\"" $posicion "\"><label class=\"desc\">"$ac['titulomarc'] . ": </label><input type=\"text\" class=\"field text medium\" name=\"" $ac['titulomarc'] ."\" id=\"" $ac['codmarc'] . "\" /></span></div></li>";
            
$contador $contador 1;
    }
}
?>
Con eso deberia de irte, si no va mira bien donde da el error y dinoslo a ver k podemos hacer.
  #14 (permalink)  
Antiguo 24/11/2009, 15:42
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: Ayudenme a resolver este problema al mostrar enlace

mmmm ps gracias por su aporte, probare hacerlo con HTML como me recomendo J4v13r, lo que sospecho es que tengo un error en el javascript que me ocasiona el error

Les notificaré lo que me resulte de este intento gracias por su ayuda de nuevo

Salu2
  #15 (permalink)  
Antiguo 24/11/2009, 18:12
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
De acuerdo Respuesta: Ayudenme a resolver este problema al mostrar enlace

Hola a todos en el foro, ya resolvi el problema del enlace, pero quiero agradecer a Catalon y a J4v13r por haber seguido mi post y responderme

aca esta el codigo por si a alguien mas se encuentra en esta misma situación otro día

Cita:
if($contador%2 == 0){
$id = $ac['codmarc'];

?>
<li id="foli1"><div><span class="<?php echo $posicion ?>"><label class="desc" id="<?php $ac['codmarc'] ?>" for="Field1"> <?php echo $ac['titulomarc'] ?>:<a href="javascript:ventanaEmergente('../ayuda/ayuda_marc.php?codigomarc=<?php echo $id ?>')">Ver ayuda</a></label><input type="text" class="field text medium" name="<?php echo $ac['titulomarc'] ?>" id="<?php echo $ac['codmarc'] ?>"/></span>

<?php $contador = $contador + 1; }else{
$id = $ac['codmarc'];
?>
<span class="<?php echo $posicion ?>"><label class="desc" id="<?php $ac['codmarc'] ?>" for="Field1"><?php echo $ac['titulomarc'] ?>: <a href="javascript:ventanaEmergente('../ayuda/ayuda_marc.php?codigomarc=<?php echo $id ?>')">Ver ayuda</a></label><input type="text" class="field text medium" name="<?php $ac['titulomarc'] ?>" id="<?php $ac['codmarc'] ?>" /></span></div></li>
<?php $contador = $contador + 1;
}
}?>
Suerte a todos
Gracias de nuevo xD
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 02:31.