13/08/2010, 08:29
|
| | Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 14 años, 4 meses Puntos: 21 | |
Respuesta: Select editable Te voy a colgar un ejemplo, es implementando Javascript, PHP y Mysql. Espero que te sirva. el contenido de conexion_bd.php lo tienes en el post anterior Código HTML: <html>
<head>
<?php
/*------------------------------------------------------------------*
'| PROYECTO: Precios de estancia en playas de Barcelona
'| ARCHIVO: index.php
'| FECHA: 10/05/2009
'| PARTE DEL PROYECTO: selector de playas
'| AUTOR: Hiram Loreto
'+------------------------------------------------------------------*/
include ("conexion_bd.php");
$Conecta = new Conexion_bd();
$Conecta->Gestion("SELECT id_playa, playa, precio FROM playas ORDER BY id_playa");
?>
<script language = "JavaScript" type="text/javascript">
<!--
//mezclamos javascript con php
// Funcion para los precios de las playas
function segunda_lista(playa) {
//mediante etiquetas php creamos el bucle que recorre la tabla
<?
while ($Rows = mysql_fetch_array($Conecta->Query)){
?>
//mediante etiquetas php asignamos valor a las variables javascript
precio = "<?= $Rows["precio"]; ?>";
idplaya = "<?= $Rows["id_playa"]; ?>";
//comprobamos que sea la playa elegida y le damos el precio
if (idplaya == playa) {
form1.precio_playa.value=precio;
form1.precio_total.value=eval(form1.dias.value*precio);
}
<?
}
?>
}
//Si el usuario cambia el numero de dias recalculamos el valor
function cambio_dias () {
form1.precio_total.value=eval(form1.dias.value*form1.precio_playa.value);
}
-->
</script>
</head>
<body>
<h3 align="center"><strong>Seleccione playa, dias y precios:</strong></h3>
<form id="form1" name="form1" method="post" action="index.php">
<table width="60%" border="0" cellpadding="3" cellspacing="1" align="center">
<tr>
<td align="left" colspan="2">
Playa: </td>
<td align="left" colspan="6">
<select size="1" id="playa" name="playa" onchange = "javascript:segunda_lista(playa.value);">
<option value="none">Seleccione una playa</option>
<?
$Conecta2 = new Conexion_bd();
$Conecta2->Gestion("SELECT id_playa, playa, precio FROM playas ORDER BY id_playa");
while ($Rows = mysql_fetch_array($Conecta2->Query)){
?>
<option value="<?= $Rows["id_playa"]; ?>"><?= $Rows["playa"]; ?></option>
<?
}
?>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#CCCCCC">Días: </td>
<td colspan="6" align="left" bgcolor="#CCCCCC">
<input type="text" id="dias" name="dias" size="10" value="7" onchange = "javascript:cambio_dias();"> (Estancia mínima 7 días)
</td>
</tr>
<tr>
<td colspan="2" align="left">Precio: </td>
<td colspan="6" align="left">
<input type="text" id="precio_playa" name="precio_playa" size="10" disabled="disabled"> (por día)
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#CCCCCC">Precio total estancia: </td>
<td colspan="6" align="left" bgcolor="#CCCCCC">
<input type="text" id="precio_total" name="precio_total" size="10" disabled="disabled"> (por día)
</td>
</tr>
<tr>
<td colspan="8" align="center"><input type="submit" name="pedir" value="Solicitar" /></td>
</tr>
</table>
</form>
</body>
</html> Y este sería el SQL
Código:
# MySQL-Front 3.2 (Build 14.3)
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES latin1 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='SYSTEM' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
/*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
/*!40103 SET SQL_NOTES='ON' */;
# Host: localhost Database: prueba_playas
# ------------------------------------------------------
# Server version 5.0.67-community-nt
DROP DATABASE IF EXISTS `prueba_playas`;
CREATE DATABASE `prueba_playas` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci */;
USE `prueba_playas`;
#
# Table structure for table playas
#
CREATE TABLE `playas` (
`id_playa` int(11) unsigned NOT NULL auto_increment,
`playa` varchar(75) collate latin1_spanish_ci default NULL,
`precio` double(11,2) unsigned default NULL,
PRIMARY KEY (`id_playa`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
#
# Dumping data for table playas
#
LOCK TABLES `playas` WRITE;
INSERT INTO `playas` VALUES (1,'playa 1',25.56);
INSERT INTO `playas` VALUES (2,'playa 2',3.99);
INSERT INTO `playas` VALUES (3,'playa 3',15.67);
INSERT INTO `playas` VALUES (4,'playa 4',18.5);
INSERT INTO `playas` VALUES (5,'playa 5',199.99);
INSERT INTO `playas` VALUES (6,'playa 6',201);
UNLOCK TABLES;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|