Foros del Web » Programando para Internet » PHP »

Problema en redireccionamiento.

Estas en el tema de Problema en redireccionamiento. en el foro de PHP en Foros del Web. Hola, tengo un problema y no consigo sacarlo haber si me podeis refrescar un poquito. Os comento un poco: Código PHP: while( $resultados  =  mysql_fetch_array ...
  #1 (permalink)  
Antiguo 18/08/2010, 03:17
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 3 meses
Puntos: 0
Problema en redireccionamiento.

Hola, tengo un problema y no consigo sacarlo haber si me podeis refrescar un poquito.

Os comento un poco:


Código PHP:
while($resultados mysql_fetch_array($usuario_consulta)) {

echo <<< HTML
<tr>
    <td width="14%" bgcolor="#FFFFEA"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[ID]</font></div></td>
    <td width="30%" bgcolor="#FFFFEA"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[nombre]</font></div></td>
    <td width="32%" bgcolor="#CCFFCC"> 
      <div align="center"><a href="$pag?ver=$redir&accion=borrar&id=$resultados
[ID]"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Borrar</font></a><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    <td width="30%">

<form action='$PHP_SELF' method='POST' name='formulario'>
<select name="aa" onchange=this.form.submit()>
            <option value="" selected="selected"></option>
        <option value="1" >Ver contrato</option>
        <option value="2" >Crear Contrato</option>
        <option value="3" >Ver parte de trabajo</option>
        <option value="4" >Crear parte de trabajo</option>

</select>
</form>
<A HREF="$pag?ver=busquedacontratoind&accion=cif&cif=$resultados
[usuario]">Ver contrato</A>
       </font></b></div>
    </td>
  </tr>
HTML;



Lo unico que quiero es redireccionar a la dirección busquedacontratoind, pero llevandome la variable $resultados[usuario], tal cual y como hago en el href, pero el problema esque no puedo meter el header location dentro de un echo. La idea es para que haga la consulta del contrato de solo ese usuario u otro distinto. Alguna idea?


Muchas gracias por todo.
  #2 (permalink)  
Antiguo 18/08/2010, 06:12
 
Fecha de Ingreso: marzo-2009
Mensajes: 42
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Problema en redireccionamiento.

Bien, aver si puedo ayudarte, quieres hacer una redirección dentro de un echo no?

Prueba con este javascript dentro del echo

Código Javascript:
Ver original
  1. <script language='javascript'>
  2. function redireccion (url) {
  3.   document.location.href = url;
  4. }
  5. </script>

Y luego en el html ..

Código HTML:
Ver original
  1. <a href='#' onClick="redireccion('$pag?ver=busquedacontratoind&accion=cif&cif=$resultados[usuario]');">Ver Contrato</a>
  #3 (permalink)  
Antiguo 18/08/2010, 06:26
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema en redireccionamiento.

Muchas gracias, pero no lo entiendo muy bien ya que el redireccionamiento lo necesito cuando se elija una opcion del select, como podria hacerlo.

Gracias
  #4 (permalink)  
Antiguo 18/08/2010, 09:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 42
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Problema en redireccionamiento.

Código PHP:
<?php
while($resultados mysql_fetch_array($usuario_consulta)) {

echo 
"
<html>
<head>
<script language='javascript'>
function redireccion (url) {
  document.location.href = url;
}
</script>
</head>
<body>
<!-- Tu código comienza aquí -->
<tr>
    <td width='14%' bgcolor='#FFFFEA'>
      <div align='center'>
        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>$resultados[ID]</font>
      </div>
    </td>
    <td width='30%' bgcolor='#FFFFEA'>
      <div align='center'>
        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>$resultados[nombre]</font>
      </div>
    </td>
    <td width='32%' bgcolor='#CCFFCC'> 
      <div align='center'>
        <a href='$pag?ver=$redir&accion=borrar&id=$resultados[ID]'>
          <font face='Verdana, Arial, Helvetica, sans-serif' size='2'>Borrar</font>
        </a>
      </div>
    </td>
    <td width='30%'>
      <form action='$PHP_SELF' method='POST' name='formulario'>
        <select name='aa' onchange='redireccion(\"$pag?ver=busquedacontratoind&accion=cif&cif=$resultados[usuario]\")'>
          <option value='' selected='selected'></option>
          <option value='1' >Ver contrato</option>
          <option value='2' >Crear Contrato</option>
          <option value='3' >Ver parte de trabajo</option>
          <option value='4' >Crear parte de trabajo</option>
        </select>
      </form>
    </td>
  </tr>
<!-- Tu código finaliza aquí -->
</body>
</html>"
;
}
?>
Te lo he tabulado porque no veía donde se abrian y cerraban los tags XD
  #5 (permalink)  
Antiguo 19/08/2010, 02:39
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema en redireccionamiento.

Muchisimas gracias por todo alcalina, podrias hecharme otra mano y explicarme un poquito como sería la estructura del if este, ya que por más que lo intento me da fallo y creo que es por las comillas:

Código PHP:
   <td width='30%'>
      <
form action='$PHP_SELF' method='POST' name='formulario'>
        <
select name='aa' onchange="if (document.forms['formulario']['aa'].selectedIndex == 1) {'redireccion(\"$pag ver=busquedacontratoind&accion=cif&cif=$resultados[usuario]\")'}">
          <
option value='1' >Ver contrato</option>
          <
option value='2' >Crear Contrato</option>
          <
option value='3' >Ver parte de trabajo</option>
          <
option value='4' >Crear parte de trabajo</option>
        </
select>
      </
form>
    </
td
-La idea es de que al elegir la opcion 1 te lleve " ver=busquedacontratoind&accion=cif&cif=$resultados[usuario] " y en cambio si eliges la opcion 2 "ver=creacontrato&accion=cif&cif=$resultados[usuario]", o la opcion 3 o 4, alguna idea?.


Muchisimas gracias por todo, esto me ayuda a seguir aprendiendo día a día.
  #6 (permalink)  
Antiguo 19/08/2010, 03:06
 
Fecha de Ingreso: marzo-2009
Mensajes: 42
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Problema en redireccionamiento.

Código PHP:
<?php
while($resultados mysql_fetch_array($usuario_consulta)) {

echo 
"
<html>
<head>
<script language='javascript'>
function redireccion (pagina,cif) {

  var opc = document.getElementById('aa').options[document.getElementById('aa').selectedIndex].value;
  var ver = NULL;
  
  switch (opc)
  {
    case 1:
      ver = 'busquedacontratoind';
      break;
    case 2:
      ver = 'creacontrato';
      break;
    case 3:
      ver = 'busquedaparte';
      break;
    case 4:
      ver = 'creaparte';
      break;
    default:
      ver = NULL;
  }
  
  var url = pagina+'?ver='+ver+'&accion=cif&cif='+cif;
  
  if (ver == 'busquedacontratoind')
    document.location.href = url;
  else if (ver == 'creacontrato')
    document.location.href = url;
  else if (ver == 'busquedaparte')
    document.location.href = url;
  else if (ver == 'creaparte')
    document.location.href = url;
  else
    return false;
}
</script>
</head>
<body>
<!-- Tu código comienza aquí -->
<tr>
    <td width='14%' bgcolor='#FFFFEA'>
      <div align='center'>
        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>"
.$resultados['ID']."</font>
      </div>
    </td>
    <td width='30%' bgcolor='#FFFFEA'>
      <div align='center'>
        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>"
.$resultados['nombre']."</font>
      </div>
    </td>
    <td width='32%' bgcolor='#CCFFCC'> 
      <div align='center'>
        <a href='"
.$pag."?ver=".$redir."&accion=borrar&id=".$resultados['ID']."'>
          <font face='Verdana, Arial, Helvetica, sans-serif' size='2'>Borrar</font>
        </a>
      </div>
    </td>
    <td width='30%'>
      <form action='"
.$PHP_SELF."' method='POST' name='formulario'>
        <select name='aa' id='aa' onChange='redireccion(\""
.$pag."\",\"".$resultados['usuario']."\")'>
          <option value='' selected='selected'></option>
          <option value='1' >Ver contrato</option>
          <option value='2' >Crear Contrato</option>
          <option value='3' >Ver parte de trabajo</option>
          <option value='4' >Crear parte de trabajo</option>
        </select>
      </form>
    </td>
  </tr>
<!-- Tu código finaliza aquí -->
</body>
</html>"
;
}
?>
No lo he probado pero debería funcionarte, lo que he hecho es sacarlo todo a una función de javascript y allí, según que opción hallas seleccionado, te llevara a un lado u a otro.

Última edición por Alcalina; 19/08/2010 a las 03:12
  #7 (permalink)  
Antiguo 19/08/2010, 03:52
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema en redireccionamiento.

Alcalina, no me hace la redirección este codigo al elegir algun elemento del desplegable, puede ser por que no entre en el switch?. Un saludo
  #8 (permalink)  
Antiguo 19/08/2010, 04:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 42
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Problema en redireccionamiento.

Código PHP:
<?php
while($resultados mysql_fetch_array($usuario_consulta)) {

echo 
"
<html>
<head>
<script language='javascript'>
function redireccion (pagina,cif) {

  var opc = document.getElementById('aa').options[document.getElementById('aa').selectedIndex].value;
  var ver = 'NULL';
  
  if (opc == '1')
      ver = 'busquedacontratoind';
  else if (opc == '2')
      ver = 'creacontrato';
  else if (opc == '3')
      ver = 'busquedaparte';
  else if (opc == '4')
      ver = 'creaparte';
  else
      alert(opc);
  
  var url = pagina+'?ver='+ver+'&accion=cif&cif='+cif;
  
  if (ver == 'busquedacontratoind')
    document.location.href = url;
  else if (ver == 'creacontrato')
    document.location.href = url;
  else if (ver == 'busquedaparte')
    document.location.href = url;
  else if (ver == 'creaparte')
    document.location.href = url;
  else
    return false;
}
</script>
</head>
<body>
<!-- Tu código comienza aquí -->
<tr>
    <td width='14%' bgcolor='#FFFFEA'>
      <div align='center'>
        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>"
.$resultados['ID']."</font>
      </div>
    </td>
    <td width='30%' bgcolor='#FFFFEA'>
      <div align='center'>
        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>"
.$resultados['nombre']."</font>
      </div>
    </td>
    <td width='32%' bgcolor='#CCFFCC'> 
      <div align='center'>
        <a href='"
.$pag."?ver=".$redir."&accion=borrar&id=".$resultados['ID']."'>
          <font face='Verdana, Arial, Helvetica, sans-serif' size='2'>Borrar</font>
        </a>
      </div>
    </td>
    <td width='30%'>
      <form action='"
.$_SERVER['PHP_SELF']."' method='POST' name='formulario'>
        <select name='aa' id='aa' onChange='redireccion(\""
.$pag."\",\"".$resultados['usuario']."\")'>
          <option value='' selected='selected'></option>
          <option value='1' >Ver contrato</option>
          <option value='2' >Crear Contrato</option>
          <option value='3' >Ver parte de trabajo</option>
          <option value='4' >Crear parte de trabajo</option>
        </select>
      </form>
    </td>
  </tr>
<!-- Tu código finaliza aquí -->
</body>
</html>"
;
}
?>
Te lo he cambiado por if's, haber si es eso.

Si no te entra al if, te debería salir un alert con el valor de opc.

Este código me funciona, acabo de probarlo ahora mismo. Arriba te lo he corregido también.
Código PHP:
<?php
$pag 
"Script.php";
$redir "Script.php";
$resultados = array ("ID"=>"1","nombre"=>"Alca","usuario"=>"Lina");
echo 
"
<html>
<head>
<script language='javascript'>
function redireccion (pagina,cif) {

  var opc = document.getElementById('aa').options[document.getElementById('aa').selectedIndex].value;
  var ver = 'NULL';
  
  if (opc == '1')
      ver = 'busquedacontratoind';
  else if (opc == '2')
      ver = 'creacontrato';
  else if (opc == '3')
      ver = 'busquedaparte';
  else if (opc == '4')
      ver = 'creaparte';
  else
      alert(opc);
  
  var url = pagina+'?ver='+ver+'&accion=cif&cif='+cif;
  
  if (ver == 'busquedacontratoind')
    document.location.href = url;
  else if (ver == 'creacontrato')
    document.location.href = url;
  else if (ver == 'busquedaparte')
    document.location.href = url;
  else if (ver == 'creaparte')
    document.location.href = url;
  else
    return false;
}
</script>
</head>
<body>
<!-- Tu código comienza aquí -->
<tr>
    <td width='14%' bgcolor='#FFFFEA'>
      <div align='center'>
        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>"
.$resultados['ID']."</font>
      </div>
    </td>
    <td width='30%' bgcolor='#FFFFEA'>
      <div align='center'>
        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>"
.$resultados['nombre']."</font>
      </div>
    </td>
    <td width='32%' bgcolor='#CCFFCC'> 
      <div align='center'>
        <a href='"
.$pag."?ver=".$redir."&accion=borrar&id=".$resultados['ID']."'>
          <font face='Verdana, Arial, Helvetica, sans-serif' size='2'>Borrar</font>
        </a>
      </div>
    </td>
    <td width='30%'>
      <form action='"
.$_SERVER['PHP_SELF']."' method='POST' name='formulario'>
        <select name='aa' id='aa' onChange='redireccion(\""
.$pag."\",\"".$resultados['usuario']."\")'>
          <option value='' selected='selected'></option>
          <option value='1' >Ver contrato</option>
          <option value='2' >Crear Contrato</option>
          <option value='3' >Ver parte de trabajo</option>
          <option value='4' >Crear parte de trabajo</option>
        </select>
      </form>
    </td>
  </tr>
<!-- Tu código finaliza aquí -->
</body>
</html>"
;
?>

Última edición por Alcalina; 19/08/2010 a las 04:09
  #9 (permalink)  
Antiguo 19/08/2010, 04:11
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema en redireccionamiento.

Nada alcalina, parece que no llega al if ya que no me salta ninguna alerta ni nada, simplemente se queda sin hacer nada, seguiré viendo posibilidades, muchas gracias.
  #10 (permalink)  
Antiguo 19/08/2010, 04:25
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema en redireccionamiento.

Muchisimas gracias Alcalina de verdad te estoy muy agradecido voy a repasar de nuevo el codigo para aprender, que es lo importante, por cierto el fallo era el switch?. Muchas gracia de verdad.

Un saludo.
  #11 (permalink)  
Antiguo 19/08/2010, 04:38
 
Fecha de Ingreso: marzo-2009
Mensajes: 42
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Problema en redireccionamiento.

El fallo había sido mio, en var ver = 'NULL'; lo había dejado sin comillas.

Y la variable $PHP_SELF la he cambiado por $_SERVER['PHP_SELF'] porque también me daba error xD

Me alegro de haberte ayudado. Si tienes alguna duda con respecto al código no tienes más que preguntar. O si quieres te lo comento.
  #12 (permalink)  
Antiguo 27/08/2010, 03:42
 
Fecha de Ingreso: enero-2010
Mensajes: 46
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema en redireccionamiento.

Hola, ahora el problema que tengo es que si la tabla contiene 3 usuarios, el primero de ellos hace bien el código y se lleva la variable cif por url que se trae de la bd, en cambio a partir de ese no se realiza la acción y mensaje el mensaje de alerta del java, si alguien puede aportar algo, estaría muy agradecido.

Además de esto el primero al llevarse la variable cuando la intento recoger:
Código PHP:
$cifcontr=$_GET['cif']; 
no me da ese valor y no es problema de nada de la bd, porque si en la consulta le sustituyo
Código PHP:
WHERE=$cifcontr 
por
Código PHP:
WHERE=121212 
, me lo hace siempre y cuando esté en la mysql.

Código PHP:
while($resultados mysql_fetch_array($usuario_consulta)) {

echo 
"
<html>
<head>
<script language='javascript'>

function redireccion (pagina,cif) {

  var opc = document.getElementById('aa').options[document.getElementById('aa').selectedIndex].value;

  var ver = 'NULL';

  if (opc == '1')

      ver = 'busquedacontratoind';

  else if (opc == '2')

      ver = 'creacontrato/creacontrato';

  else if (opc == '3')

      ver = 'form';

  else if (opc == '4')

      ver = 'form/creaparte';

  else

      alert(opc);

  

  var url = pagina+'?ver='+ver+'&accion=cif&cif='+cif;

  
  if (ver == 'busquedacontratoind')

    document.location.href = url;

  else if (ver == 'creacontrato/creacontrato')

    document.location.href = url;

  else if (ver == 'busquedaparte')

    document.location.href = url;

  else if (ver == 'form/creaparte')

    document.location.href = url;

  else

    return false;

}

</script>

</head>

<body>

<!-- Tu código comienza aquí -->

<tr>

    <td width='14%' bgcolor='#FFFFEA'>

      <div align='center'>

        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>"
.$resultados['ID']."</font>

      </div>

    </td>

    <td width='30%' bgcolor='#FFFFEA'>

      <div align='center'>

        <font face='Verdana, Arial, Helvetica, sans-serif' size='2' color='#000000'>"
.$resultados['nombre']."</font>

      </div>

    </td>

    <td width='32%' bgcolor='#CCFFCC'> 

      <div align='center'>

        <a href='"
.$pag."?ver=".$redir."&accion=borrar&id=".$resultados['ID']."'>

          <font face='Verdana, Arial, Helvetica, sans-serif' size='2'>Borrar</font>

        </a>

      </div>

    </td>

    <td width='30%'>

      <form action='"
.$_SERVER['PHP_SELF']."' method='POST' name='formulario'>

        <select name='aa' id='aa' onChange='redireccion(\""
.$pag."\",\"".$resultados['usuario']."\")'>

          <option value='' selected='selected'></option>

          <option value='1' >Ver contrato</option>

          <option value='2' >Crear Contrato</option>

          <option value='3' >Ver parte de trabajo</option>

          <option value='4' >Crear parte de trabajo</option>

        </select>

      </form>

    </td>

  </tr>

<!-- Tu código finaliza aquí -->

</body>

</html>"
;


Un saludo y gracias por todo!

Última edición por xiskoct; 27/08/2010 a las 04:40

Etiquetas: redireccionamiento
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 18:49.