Foros del Web » Programando para Internet » Javascript »

Cómo combino JS y PHP para hacer un JumpMenu dinámico?

Estas en el tema de Cómo combino JS y PHP para hacer un JumpMenu dinámico? en el foro de Javascript en Foros del Web. A ver si alguen me puede ayudar: Código: <select name="producto1" id="select"> <?php include ("conexion.php"); $link = mysql_connect($host, $user, $pass); mysql_select_db($base, $link); $result = mysql_query("SELECT DISTINCT ...
  #1 (permalink)  
Antiguo 21/11/2005, 08:08
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Cómo combino JS y PHP para hacer un JumpMenu dinámico?

A ver si alguen me puede ayudar:
Código:
<select name="producto1" id="select">
                  <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT DISTINCT producto FROM productos order by producto asc", $link); 
while ($row=mysql_fetch_array($result))
{
echo "<option value>".$row['producto']."</option>";
}
?>
              </select>
Sólo que habría que convertir en jumpmenu a este select común.
Quiero que cuando se seleccione uno de los elementos, aparezca otro menú (no de salto) con lo siguiente:
Código:
<select name="presenta1" id="select1">
    <?php
$pro1 = $_POST['producto1'];
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT presentacion FROM productos where producto='$pro1'", $link); 
while ($row=mysql_fetch_array($result))
{
$presen = $row['presentacion'];
$mi_array = explode("-",$presen); 
foreach($mi_array as $value) 
echo "<option value>".$value."</option>";
}
?>

              </select>
para, finalmente, asignar un valor de unidad en un text field común. La idea es que haya 10 filas de esto para que el cliente pueda pedir hasta diez productos cada vez, y se envíe por mail via php.

¿Podrás ayudarme con el código de JS combinado con PHP?

Gracias!
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #2 (permalink)  
Antiguo 21/11/2005, 18:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Primero resuelve el tema con datos estáticos (unos cuantos de prueba) con todo el Javascript que te haga falta .. luego con ese código en la mano si quieres vemos como integrarlo junto con PHP.

Así de paso quedará mas claro la relación entre ambos "jumpmenu" (que para mi eso es sólo el hecho de usar javascirpt para hacer un "submit" o redireccionar a otro sitio).

Por cierto el tema de "aparecer" elementos de un formulario (u otro elemento en general) en una página HTML supone si lo haces en PHP de una recarga de página, así que .. antes de nada tendrás que aclarar si la supuesta recarga de página no te preocuparía (para hacerlo con el mínimo javascript y PHP) o si te precupa (en ese caso tendrías que usar más javascript (tal vez DHTML? o algo más complejo en "Ajax" que sería interesante).


Un saludo,
  #3 (permalink)  
Antiguo 22/11/2005, 05:31
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
tengo un scrip

Cluster: tengo aquí algo que hizo tunait, que traté de convertir... pero no me sale.
te muestro:
Código:
<script language="JavaScript"> 
function cambiar(cual,que) 
{ 
if(cual.selectedIndex == 0){return false} 
else 
    { 
    switch (cual.value) 
        { 
        case "material" : 
            que.keywords[1].style.display = 'inline'; 
            que.keywords[0].style.display = 'none'; 
            break; 
        case "origen": 
            que.keywords[1].style.display = 'inline'; 
            que.keywords[0].style.display = 'none'; 
            break; 
        case "precio": 
            que.keywords[0].style.display = 'inline'; 
            que.keywords[1].style.display = 'none'; 
            break; 
        } 
    } 
} 
</script> 
</head> 

<body> 
<form name="form1" method="post" action=""> 
  <select name="gal" onchange = "cambiar(this,this.form)"> 
    <option>Selecciona</option> 
    <option value="material">material</option> 
    <option value="origen">origen</option> 
    <option value="precio">precio</option> 
  </select> 
  <select name="keywords" style="display:none"> 
    <option>Selecciona</option> 
    <option>Menos de 30</option> 
    <option>de 30 a 100</option> 
    <option>m&aacute;s de 100</option> 
  </select> 
  <br> 
  <input type="text" name="keywords" style="display:none"> 
</form> 
</body>
A esto, yo le hice las siguientes modificaciones:

Código:
<?php			
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
echo"

<script language='JavaScript'> 

function cambiar(cual,que) 
{ 
if(cual.selectedIndex == 0){return false} 
else 
    { 
    switch (cual.value) 
        { 
";
$result = mysql_query("SELECT DISTINCT producto,id FROM productos order by producto asc", $link); 
while ($row=mysql_fetch_array($result))
{
echo "
			case '".$row['producto']."'
            que.pres1[1].style.display = 'inline'; 
            que.pres1[0].style.display = 'none'; 
            break; 
";
}
echo"    } 
    } 
} 
</script>";
?>    	
     
</head> 
<body> 
<form name="form1" method="post" action="tunait.php"> 
  <select name="prod1" onchange = "cambiar(this,this.form)"> 
<?php			
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT DISTINCT producto,id FROM productos order by producto asc", $link); 
while ($row=mysql_fetch_array($result))
{
echo "<option value='".$row['producto']."'>".$row['producto']."</option>";
}
?>
  </select> 
  <select name="pres1" style="display:none"> 
  <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT presentacion FROM productos where producto='$producto'", $link); 
while ($row=mysql_fetch_array($result))
{
$presen = $row['presentacion'];
$mi_array = explode("-",$presen); 
foreach($mi_array as $value) 
echo "<option value>".$value."</option>";

}
?>
  </select> 
  <br> 
</form> 
</body>
siempre, si tener la más mínima idea de javascript...quizá por eso no funciona.

Mientras tanto, me ha quedado algo muy lento y no del todo funcional, que es esto:
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #4 (permalink)  
Antiguo 22/11/2005, 05:32
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
ups! muy largo el mensaje

Código:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<form name="form">
  <table width="600" border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td width="327">  <select name="prod1" onChange="MM_jumpMenu('parent',this,0)">
                        <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT DISTINCT producto,id FROM productos order by producto asc", $link); 
while ($row=mysql_fetch_array($result))
{
echo "<option value='prueba2.php?id1=".$row['id']."&prod1=".$row['producto']."&cant1=$cant1&id2=$id2&prod2=$prod2&pres2=$pres2&cant2=$cant2&id3=$id3&prod3=$prod3&pres3=$pres3&cant3=$cant3&id4=$id4&prod4=$prod4&pres4=$pres4&cant4=$cant4&id5=$id5&prod5=$prod5&pres5=$pres5&cant5=$cant5&id6=$id6&prod6=$prod6&pres6=$pres6&cant6=$cant6'>".$row['producto']."</option>";
}
echo "<option value='prueba2.php?producto=".$row['id']."' selected>$prod1</option>";
?>
 </select></td>
        <td width="180">  <select name="pres1">
  <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT presentacion FROM productos where id='$id1'", $link); 
while ($row=mysql_fetch_array($result))
{
$presen = $row['presentacion'];
$mi_array = explode("-",$presen); 
foreach($mi_array as $value) 
echo "<option value>".$value."</option>";

}
?>
  </select></td>
        <td width="73">  <?
		if(!$cant1){
		echo"
		<input name='cant1' type='text' id='cant1' size='5'>";
		}
		else{echo"
		<input name='cant1' type='text' id='cant1' size='5' value='$cant1'>";
				}
		?>
</td>
      </tr>
  </table>
  

  <table width="600" border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td width="327">  <select name="prod2" onChange="MM_jumpMenu('parent',this,0)">
                        <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT DISTINCT producto,id FROM productos order by producto asc", $link); 
while ($row=mysql_fetch_array($result))
{
echo "<option value='prueba2.php?id2=".$row['id']."&prod2=".$row['producto']."&id1=$id1&prod1=$prod1&pres1=$pres1&cant1=$cant1&cant2=$cant2&id3=$id3&prod3=$prod3&pres3=$pres3&cant3=$cant3&id4=$id4&prod4=$prod4&pres4=$pres4&cant4=$cant4&id5=$id5&prod5=$prod5&pres5=$pres5&cant5=$cant5''>".$row['producto']."</option>";
}
echo "<option value='prueba2.php?producto=".$row['id']."' selected>$prod2</option>";

?>
 </select></td>
        <td width="180">  <select name="pres2">
  <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT presentacion FROM productos where id='$id2'", $link); 
while ($row=mysql_fetch_array($result))
{
$presen = $row['presentacion'];
$mi_array = explode("-",$presen); 
foreach($mi_array as $value) 
echo "<option value>".$value."</option>";

}
?>
  </select></td>
        <td width="73">  <?
		if(!$cant2){
		echo"
		<input name='cant2' type='text' id='cant2' size='5'>";
		}
		else{echo"
		<input name='cant2' type='text' id='cant2' size='5' value='$cant2'>";
				}
		?>
</td>
      </tr>
  </table>

<table width="600" border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td width="327">  <select name="prod3" onChange="MM_jumpMenu('parent',this,0)">
                        <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT DISTINCT producto,id FROM productos order by producto asc", $link); 
while ($row=mysql_fetch_array($result))
{
echo "<option value='prueba2.php?id3=".$row['id']."&prod3=".$row['producto']."&id1=$id1&prod1=$prod1&pres1=$pres1&cant1=$cant1&id2=$id2&prod2=$prod2&pres2=$pres2&cant2=$cant2&cant3=$cant3&id4=$id4&prod4=$prod4&pres4=$pres4&cant4=$cant4&id5=$id5&prod5=$prod5&pres5=$pres5&cant5=$cant5''>".$row['producto']."</option>";
}
echo "<option value='prueba2.php?producto=".$row['id']."' selected>$prod3</option>";

?>
 </select></td>
        <td width="180">  <select name="pres3">
  <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT presentacion FROM productos where id='$id3'", $link); 
while ($row=mysql_fetch_array($result))
{
$presen = $row['presentacion'];
$mi_array = explode("-",$presen); 
foreach($mi_array as $value) 
echo "<option value>".$value."</option>";

}
?>
  </select></td>
        <td width="73">  <?
		if(!$cant3){
		echo"
		<input name='cant3' type='text' id='cant3' size='5'>";
		}
		else{echo"
		<input name='cant3' type='text' id='cant3' size='5' value='$cant3'>";
				}
		?>
</td>
      </tr>
  </table> 
<table width="600" border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td width="327">  <select name="prod4" onChange="MM_jumpMenu('parent',this,0)">
                        <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT DISTINCT producto,id FROM productos order by producto asc", $link); 
while ($row=mysql_fetch_array($result))
{
echo "<option value='prueba2.php?id4=".$row['id']."&prod4=".$row['producto']."&id1=$id1&prod1=$prod1&pres1=$pres1&cant1=$cant1&id2=$id2&prod2=$prod2&pres2=$pres2&cant2=$cant2&id3=$id3&prod3=$prod3&pres3=$pres3&cant3=$cant3&cant4=$cant4&id5=$id5&prod5=$prod5&pres5=$pres5&cant5=$cant5''>".$row['producto']."</option>";
}
echo "<option value='prueba2.php?producto=".$row['id']."' selected>$prod4</option>";

?>
 </select></td>
        <td width="180">  <select name="pres4">
  <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT presentacion FROM productos where id='$id4'", $link); 
while ($row=mysql_fetch_array($result))
{
$presen = $row['presentacion'];
$mi_array = explode("-",$presen); 
foreach($mi_array as $value) 
echo "<option value>".$value."</option>";

}
?>
  </select></td>
        <td width="73">  <?
		if(!$cant4){
		echo"
		<input name='cant4' type='text' id='cant4' size='5'>";
		}
		else{echo"
		<input name='cant4' type='text' id='cant4' size='5' value='$cant4'>";
				}
		?>
</td>
      </tr>
  </table> 
<table width="600" border="0" cellspacing="5" cellpadding="0">
      <tr>
        <td width="327">  <select name="prod5" onChange="MM_jumpMenu('parent',this,0)">
                        <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT DISTINCT producto,id FROM productos order by producto asc", $link); 
while ($row=mysql_fetch_array($result))
{
echo "<option value='prueba2.php?id5=".$row['id']."&prod5=".$row['producto']."&id1=$id1&prod1=$prod1&pres1=$pres1&cant1=$cant1&id2=$id2&prod2=$prod2&pres2=$pres2&cant2=$cant2&id3=$id3&prod3=$prod3&pres3=$pres3&cant3=$cant3&id4=$id4&prod4=$prod4&pres4=$pres4&cant4=$cant4&cant5=$cant5&id6=$id6&prod6=$prod6&pres6=$pres6&cant6=$cant6'>".$row['producto']."</option>";
}
echo "<option value='prueba2.php?producto=".$row['id']."' selected>$prod5</option>";

?>
 </select></td>
        <td width="180">  <select name="pres5">
  <?php
include ("conexion.php");
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($base, $link); 
$result = mysql_query("SELECT presentacion FROM productos where id='$id5'", $link); 
while ($row=mysql_fetch_array($result))
{
$presen = $row['presentacion'];
$mi_array = explode("-",$presen); 
foreach($mi_array as $value) 
echo "<option value>".$value."</option>";

}
?>
  </select></td>
        <td width="73">  <?
		if(!$cant5){
		echo"
		<input name='cant5' type='text' id='cant5' size='5'>";
		}
		else{echo"
		<input name='cant5' type='text' id='cant5' size='5' value='$cant5'>";
				}
		?>
</td>
      </tr>
  </table> </form>
en donde he aclarado que primero elijan los valores del jump de productos, (todos) y después le asignen los valores de presentación y cantidad, puesto que no he logrado que los conserve al recargar la página.... alguna idea?
gracias!
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #5 (permalink)  
Antiguo 26/05/2006, 13:06
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
AH, pude resolverlo con este post: http://www.forosdelweb.com/showthrea...mote+scripting
Muchas gracias a todos.
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
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:55.