Foros del Web » Programando para Internet » PHP »

duda con Jump Menu

Estas en el tema de duda con Jump Menu en el foro de PHP en Foros del Web. Hola gente Tengo el siguiente problema, tengo 2 archivos: principal.php y material.php, los dos primeros codes son de principal.php, el ultimo de material.php. Lo que ...
  #1 (permalink)  
Antiguo 23/01/2009, 07:27
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
duda con Jump Menu

Hola gente

Tengo el siguiente problema, tengo 2 archivos: principal.php y material.php, los dos primeros codes son de principal.php, el ultimo de material.php.

Lo que quiero hacer es que en la misma principal.php seleccione del jump menu un material y me realice la consulta mysql, en material.php, llamando al material "Acero" por ejemplo, y me inserte la consulta más abajo en alguna parte del html o en un campo de texto....


Código PHP:
<script type="text/JavaScript">
<!--
function 
MM_jumpMenu(targ,selObj,restore){ //v3.0
  
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (
restoreselObj.selectedIndex=0;
}
//-->
</script> 
Código PHP:
<form name="form1" action="" method="post">
  <table width="200" border="1">
    
    <tr>
      <td><select name="mat_material" id="_material"  onchange="MM_jumpMenu('parent',this,0)">
        <option value="material.php?id=Acero">Acero</option>
        <option value="material.php?id=Barra">Barra</option>
            </select></td>
    </tr>
    <tr>
      <td><label>
        <?php echo $_GET[mat_material]; ?>
      </label></td>
    </tr>
  </table>
</form>
material.php
Código PHP:
<?php
   
include("conn.php");
   
$link=Conectarse();
   
$id=$_GET['id'];
   
mysql_query("SELECT mat_material FROM `material` WHERE mat_material = $id",$link);
   
   
header("Location: principal.php");
?>
  #2 (permalink)  
Antiguo 23/01/2009, 07:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: duda con Jump Menu

Hola Nachoz, lo que entiendo es que quieres llamar el contenido asociado al valor del select seleccionado. en ese caso estas llamando mal los datos.

primero puedes omitir la primera parte del código (no es necesario)

Código php:
Ver original
  1. <?php
  2.    include("conn.php");
  3.    $link=Conectarse();
  4.    $id=$_POST['mat_material'];
  5.    $result=mysql_query("SELECT mat_material FROM `material` WHERE mat_material = $id",$link);
  6.   if($row = mysql_fetch_array($result)) {$mat_material=$row['mat_material'];}
  7.   mysql_free_result($result);
  8. ?>
  9.  
  10.  
  11. <form name="form1" action="" method="post">
  12.   <table width="200" border="1">
  13.     <tr>
  14.       <td><select name="mat_material"  onChange="this.form.submit()">
  15.         <option value="Acero">Acero</option>
  16.         <option value="Barra">Barra</option>
  17.             </select></td>
  18.     </tr>
  19.     <tr>
  20.       <td><label>
  21.         <?php echo $mat_material; ?>
  22.       </label></td>
  23.     </tr>
  24.   </table>
  25. </form>
  #3 (permalink)  
Antiguo 23/01/2009, 08:00
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: duda con Jump Menu

Gracias por la respuesta, segun entendi dices que ¿solo basta con un archivo.php?, y si es asi me esta arrojando error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\atlas\principal.php on line 6
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\atlas\principal.php on line 7

Gracias =)
  #4 (permalink)  
Antiguo 23/01/2009, 08:06
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: duda con Jump Menu

el problema esta en la conexión a la base de datos. que faltan las comillas simples.
Código php:
Ver original
  1. $result=mysql_query("SELECT mat_material FROM materia WHERE mat_material='$id' ",$link);
  2.   if($row = mysql_fetch_array($result)) {$mat_material=$row['mat_material'];}
  3.  mysql_free_result($result);

PD: solo es necesario un archivo para hacer lo que deseas
  #5 (permalink)  
Antiguo 23/01/2009, 08:14
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: duda con Jump Menu

Genial, funcionando ... muchas gracias
  #6 (permalink)  
Antiguo 23/01/2009, 08:36
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: duda con Jump Menu

Se me olvido mencionar el siguiente paso ... :S

Código PHP:
 $result=mysql_query("SELECT mat_material, cod_material FROM `material` WHERE mat_material = '$id'",$link); 
Seleccionar el material "Acero" y que mediante la mysql me devuelva los N registros de "Acero" junto con sus "Codigos" .. por ejemplo...

Acero - L34
Acero - Z35
Acero - Q23
etc ...

pienso viendo el codigo que me diste hacer algo con el IF y hacer un while ... saludos!
  #7 (permalink)  
Antiguo 23/01/2009, 10:19
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: duda con Jump Menu

aun no me resulta este filtrado, ya que me muestra solo el primer valor de todos los "Acero" con su respectivo codigo ...

please help :p
  #8 (permalink)  
Antiguo 23/01/2009, 15:35
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: duda con Jump Menu

Exacto, debes utilizar un while para hacer lo que quieres.

en ese caso seria:

Código php:
Ver original
  1. <?php
  2.    include("conn.php");
  3.    $link=Conectarse();
  4.    $id=$_POST['mat_material'];
  5. ?>
  6.  
  7.  
  8. <form name="form1" action="" method="post">
  9.   <table width="200" border="1">
  10.     <tr>
  11.       <td><select name="mat_material"  onChange="this.form.submit()">
  12.         <option value="Acero">Acero</option>
  13.         <option value="Barra">Barra</option>
  14.             </select></td>
  15.     </tr>
  16.     <tr>
  17.       <td><label>
  18. <?php
  19.  $result=mysql_query("SELECT * FROM material WHERE mat_material='$id'",$link);
  20.   while($row = mysql_fetch_array($result)) {
  21.    echo $row['mat_material'].' - '.$row['cod_material'].'<br />';
  22.   }
  23.   mysql_free_result($result);
  24. ?>
  25.       </label></td>
  26.     </tr>
  27.   </table>
  28. </form>

Suerte
  #9 (permalink)  
Antiguo 26/01/2009, 06:38
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: duda con Jump Menu

Gracias por el dato anterior, funciona muy bien ... ahora si quiero que las llamadas aparescan en un campo de texto lo hice de la siguiente manera como sale abajo, pero el problema es que me arroja solo la primera seleccion, osea si selecciono "Acero" me tira la informacion de acero correcta, pero si despues selecciono "Barra" del jump menu no me recoge los datos de "Barra", asi mismo de la otra forma primero barra y despues acero ....

Código PHP:
      <?php
       $result
=mysql_query("SELECT * FROM material WHERE mat_material='$id'",$link);
        while(
$row mysql_fetch_array($result)) {
      
printf("<tr><td>&nbsp;<input name='mat_material' type='text' value='%s'>&nbsp;</td> <td>&nbsp;<input name='cod_material' type='text' value='%s'>&nbsp;</td> </tr>",$row["mat_material"], $row["cod_material"]);
        }
        
mysql_free_result($result);
      
?>

Saludos!
  #10 (permalink)  
Antiguo 26/01/2009, 08:30
 
Fecha de Ingreso: octubre-2007
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: duda con Jump Menu

Sorry tema solucionado, me respondi yo mismo =)

gracias por todo
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 11:51.