Foros del Web » Programando para Internet » PHP »

Problema con link

Estas en el tema de Problema con link en el foro de PHP en Foros del Web. Hola a todos! tengo el siguiente problema, en una página tomo datos de mi base de datos ej: (nombre producto, descripcion, nombre de empresa). En ...
  #1 (permalink)  
Antiguo 26/06/2011, 19:38
 
Fecha de Ingreso: mayo-2010
Mensajes: 70
Antigüedad: 14 años
Puntos: 1
Problema con link

Hola a todos! tengo el siguiente problema, en una página tomo datos de mi base de datos ej: (nombre producto, descripcion, nombre de empresa).
En la descripción quiero que cuando la muestre me la tome como un link en vez de un button, y al hacer click en él me muestre en otra página la descripción del producto pero al hacer click en el link me carga el id del producto pero no me reedirecciona, como que no me lee el form.
este es mi código:

Código PHP:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script>

function cargo_detalle(id){
    document.getElementById('hidden_prod').value=id;
    form_prod.action="idetalle_producto.php"
    form_prod.submit();
    
    
}
</script>

</head>
<body>
<?php
$conn 
Conectarse();
$sql "SELECT p.id_producto,p.nombre, p.descripcion, e.nombre_empresa, p.id_empresa
        FROM productos p, empresas e
        WHERE p.id_empresa = e.id_empresa and p.id_empresa = '$id_empresa'"
;
$res ejecutar_consulta($sql,$conn);

if(!empty(
$id_empresa)){
echo 
"<form name='form_prod' id='form_prod' method='post'>";
echo 
"<table width='400'>";
echo 
"<tr>";
    if(
mysql_num_rows($res) != 0){
        while(
$row mysql_fetch_array($res)){
            
$id_prod $row['id_producto'];
            echo 
"<th align='left'>Producto:</th>";
            echo 
"<td>" .$row['nombre']. "</td>";
            echo 
"</tr>";
            echo  
"<th align='left'>Descripcion:</th>";
            echo 
"<td><a href='#' onclick='cargo_detalle($id_prod)'>" .$row['descripcion']. "</a></td>";
                        echo 
"</tr>"
            
echo "<td bgcolor='#FFFF00' align='center'>Empresa</td>";
                        echo 
"<td>" .$row['empresa']. "</td>
            echo "
</tr>";
        }
        echo "
<input type='hidden' id='hidden_prod' name='hidden_prod'>";
        echo "
</form>";
    }else{
        echo "
<td align='center'>La empresa no tiene Productos</td>";
        echo "
</tr>";
        echo "
</table>";
    }
}
?>

</body>
  #2 (permalink)  
Antiguo 26/06/2011, 21:20
Avatar de blakmetall  
Fecha de Ingreso: diciembre-2010
Ubicación: Jalisco
Mensajes: 181
Antigüedad: 13 años, 4 meses
Puntos: 18
Respuesta: Problema con link

Aqui te dejo tu codigo con una pequeña modificacion.

Código PHP:
Ver original
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>Documento sin título</title>
  4. <script>
  5.  
  6. function cargo_detalle(id){
  7.     document.getElementById('hidden_prod').value=id;
  8.     form_prod.action="idetalle_producto.php"
  9.     form_prod.submit();
  10. }
  11. </script>
  12.  
  13. </head>
  14. <body>
  15. <?php
  16. $conn = Conectarse();
  17. $sql = "SELECT p.id_producto,p.nombre, p.descripcion, e.nombre_empresa, p.id_empresa
  18.        FROM productos p, empresas e
  19.        WHERE p.id_empresa = e.id_empresa and p.id_empresa = '$id_empresa'";
  20. $res = ejecutar_consulta($sql,$conn);
  21.  
  22. if(!empty($id_empresa)){
  23. echo "<form name='form_prod' id='form_prod' method='post'>";
  24. echo "<table width='400'>";
  25. echo "<tr>";
  26.     if(mysql_num_rows($res) != 0){
  27.         while($row = mysql_fetch_array($res)){
  28.             $id_prod = $row['id_producto'];
  29.             echo "<th align='left'>Producto:</th>";
  30.             echo "<td>" .$row['nombre']. "</td>";
  31.             echo "</tr>";
  32.             echo  "<th align='left'>Descripcion:</th>";     //comillas en la llamada a cargo_detalle
  33.             echo "<td><a href='#' onclick='cargo_detalle(\"{$id_prod}\")'>" .$row['descripcion']. "</a></td>";
  34.             echo "</tr>";   //falto cerrar punto y coma
  35.             echo "<td bgcolor='#FFFF00' align='center'>Empresa</td>";
  36.             echo "<td>" .$row['empresa']. "</td>";  //aqui faltaba cerrar comillas y punto y coma.
  37.             echo "</tr>";
  38.         }
  39.         echo "<input type='hidden' id='hidden_prod' name='hidden_prod'>";
  40.         echo "</form>";
  41.     }else{
  42.         echo "<td align='center'>La empresa no tiene Productos</td>";
  43.         echo "</tr>";
  44.         echo "</table>";
  45.     }
  46. }
  47. ?>
  48.  
  49. </body>

Por cierto como pones para que el frame donde tienes el codigo se vea diferente, yo siempre pongo highlight PHP.
  #3 (permalink)  
Antiguo 27/06/2011, 08:06
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema con link

Tu problema parece ser de javascript. Creo que no podes acceder al form directamente así:
form_prod.action

Tendrías que hacerlo así:
document.form_prod

O así:
form_prod = document.getElementById('form_prod')

La consola no te tira error?

blakmetall: usando las etiquetas [ PHP ] desde el editor avanzado.

Etiquetas: link
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:35.