Ver Mensaje Individual
  #15 (permalink)  
Antiguo 20/09/2008, 21:33
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Ayuda

Hola,

Creo que esto te podrá dar una idea; tienes que considerar si el archivo tiene retornos de carro formato ANSI vs Linux; así como la codificación de caracteres del archivo XHTML ISO vs UTF-8.

Lo que realiza el código es mostrar las lineas que están en el archivo, que representan las habitaciones en un ComboBox, y dependiendo de la selección, cuando se presiona enviar, lee el archivo completo y lo vuelve a escribir linea a linea, cambiando solamente la que representa la habitación a modificar.

Saludos,

Archivo habitacion.php :

Código:
<?php
$nombre = 'habitaciones.txt';

if (isset($_POST['Submit']) && $_POST['Submit'] == 'Enviar') {
	$archivo = file($nombre); // SLURP
	$cuenta = count($archivo);
	
	$out = fopen($nombre, "w+");
	for ($i = 0; $i < $cuenta; $i++) {
		if ($_POST['habitacion'] == substr($archivo[$i], 0, 4)) {
			fwrite($out, substr($archivo[$i], 0, 4) . '-' . $_POST['estado'] . "\r\n"); // ANSI \\r\\n vs LINUX \\n
		} else {
			fwrite($out, $archivo[$i]);
		}
	}
	fclose($out);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><!-- Windows vs UTF-8 -->
<title>Habitaciones</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="habitacion.php">
  <table border="1" cellpadding="2" cellspacing="2">
    <tr>
      <td><label for="habitacion" accesskey="h">Habitación</label></td>
      <td><select name="habitacion" id="habitacion">
<?php
$archivo = file($nombre);
$cuenta = count($archivo);
for ($i = 0; $i < $cuenta; $i++) {
?>
          <option value="<?php echo substr($archivo[$i], 0, 4); ?>"><?php echo substr($archivo[$i], 0, 4); ?></option>
<?php
}
?>
        </select></td>
    </tr>
    <tr>
      <td><label for="estado" accesskey="e">Estado</label></td>
      <td><select name="estado" id="estado">
          <option value="1">Ocupada</option>
          <option value="0">Desocupada</option>
        </select></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="Submit" type="submit" id="Submit" value="Enviar" /></td>
    </tr>
  </table>
</form>
</body>
</html>
ps:

Este es solamente un ejemplo, puesto que puede contener errores, tienes que revisar la seguridad que representa y donde se va a correr el script. Si alguien te manda el estado de habitación 3; que no existe, etc. Normalmente no posteo código a más que sea necesario, pero bueno ... en este caso bueno ... ya está.