Jump to content
Fórum Script Brasil
  • 0

a dor de cabeça dos forms com SELECTs


joanita
 Share

Question

tenho uma pagina "adicionar.php" onde tenho um formulário com diversos campos deste género:

    <tr>
    <td align="left">
        <label for="suite">Suite: </label>
        </td>
        <td>
            <select name="suite" id="suite">
                <option value="Azul Céu">Azul Céu</option>
                <option value="Verde Esperança">Verde Esperança</option>
                <option value="Verde-Lima">Verde-Lima</option>
                <option value="Vermelho Paixão">Vermelho Paixão</option>
            </select>
        </td>
    </tr>

tudo funciona bem, adiona o valor selecionado no db... acontece que tenho outra pagina "editar.php" onde o admin poderá editar dados da reserva efetuada, acontece que nessa página consigo recuperar bem os dados dentro de inputs, mas nestes selects não recupera a opção gravada no banco (quando o admin adicionou a reserva), ou seja se quizer editar não consigo adivinhar o valor já existente nesses campos... como fazer aparecer no form da pagina "editar.php" esses valores do db?

Link to comment
Share on other sites

Recommended Posts

  • 0

Nesse caso você vai precisar verificar em cada option se o valor deste bate, como neste exemplo usando operadores ternários:

 

            <select name="suite" id="suite">
                <option <?php echo ($suite == 'Azul Céu') ? 'selected' : ''; ?> value="Azul Céu">Azul Céu</option>
                <option <?php echo ($suite == 'Verde Esperança') ? 'selected' : ''; ?> value="Verde Esperança">Verde Esperança</option>
                <option <?php echo ($suite == 'Verde-Lima') ? 'selected' : ''; ?> value="Verde-Lima">Verde-Lima</option>
                <option <?php echo ($suite == 'Vermelho Paixão') ? 'selected' : ''; ?> value="Vermelho Paixão">Vermelho Paixão</option>
            </select>

 

Edited by MLeandroJr!
Link to comment
Share on other sites

  • 0

MLeandroJr! já coloquei assim mas não retorna nenhum valor... tudo se mantem como se nada acontecesse

mas curiosamente se colocar este codigo numa outra parte da pagina ele retorna o valor da suite registada

<?php echo $suite?>

Link to comment
Share on other sites

  • 0

ve aqui:

<?php
// liga-se à base de dados
include("ligar-bd.php");

// habilita todas as mensagens de erro do PHP
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );

// inclui os estilos da página
require_once("style.css");

// edita uma entrada existente
function renderForm(
$nome = '',
$telefone = '',
$email = '',
$suite = '',
$tipo_reserva = '',
$checkin = '',
$checkout = '',
$late_checkout = '',
$pagamento = '',
$hora_chegada = '',
$camas_extra = '',
$berco = '',
$pequeno_almoco = '',
$jantar = '',
$data_jantar = '',
$animais = '',
$atividades = '',
$transporte = '',
$pedido_especial = '',
$error = '', $id = ''
)
{
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>MMH - Editar Reserva</title>

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script type='text/javascript'>

$(document).ready(
function() {
    $("#datepicker1").datepicker({dateFormat: "dd-mm-yy"});
    $("#datepicker2").datepicker({dateFormat: "dd-mm-yy"});
    $("#datepicker3").datepicker({dateFormat: "dd-mm-yy"});
    }
);
</script>
</head>

<body>
<br>
<p align="center"><img src="imagens/logo.png" border="0"></p>
<p align='center'><titulo>EDITAR RESERVA EXISTENTE</p></titulo>

<?php if ($error != ''){echo "' . $error. '";}?>

<form action="" method="post">
<div>

<?php if ($id != ''){?>
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<p align='center'><b>RESERVA ATUAL - ID ( <font color='red'><?php echo $id; ?></font> )</b></p>
<?php }?>

<table align="center" width="450px" border="0" cellpading="4" cellspacing="8"  bgcolor="#f0f0f0">
    <tr>
        <td align="left">
            <label for="name">Nome: </label>
        </td>
        <td>
            <input STYLE="line-height:22px;" type="text" name="nome" id="nome" value="<?php echo $nome; ?>">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="telefone">Telefone: </label>
        </td>
        <td>
            <input STYLE="line-height:22px;" type="text" name="telefone" maxlength="9" size="9" onkeypress="return event.charCode >= 48 && event.charCode <= 57"

value="<?php echo $telefone; ?>"
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="email">Email: </label>
        </td>
        <td>
            <input STYLE="line-height:22px;" type="text" name="email" id="email" size="9" value="<?php echo $email; ?>"
        </td>
    </tr>

    <tr>
    <td align="left">
        <label for="suite">Suite: </label>
        </td>
        <td>
    <select name="suite" id="suite">
        <option <?php echo ($suite == 'Azul Céu') ? selected : ''; ?>         value="Azul Céu">Azul Céu</option>
        <option <?php echo ($suite == 'Verde Esperança') ? selected : ''; ?>     value="Verde Esperança">Verde Esperança</option>                  <option <?php echo ($suite == 'Verde-Lima') ? selected : ''; ?>     value="Verde-Lima">Verde-Lima</option>
        <option <?php echo ($suite == 'Vermelho Paixão') ? selected : ''; ?>     value="Vermelho Paixão">Vermelho Paixão</option>                    </select>

        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="tipo_reserva">Reservado via: </label>
        </td>
        <td>
            <select name="tipo_reserva" id="tipo_reserva">
                <option value="Booking">Booking</option>
                <option value="Trip Advisor">Trip Advisor</option>
                <option value="Site Oficial">Site Oficial</option>
                <option value="Pessoalmente">Pessoalmente</option>
                <option value="Outro">Outro</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="checkin">Check in: </label>
        </td>
        <td>
            <input STYLE="background-color: #91c200; line-height:22px;" type="text" name="checkin" id="datepicker1" value="<?php echo $checkin; ?>">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="checkout">Check out: </label>
        </td>
        <td>
            <input STYLE="background-color: #ff1f1f; line-height:22px;" type="text" name="checkout" id="datepicker2" value="<?php echo $checkout; ?>">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="late_checkout">Late Check out: </label>
        </td>
        <td>
            <select name="late_checkout" id="late_checkout">
                <option value="---">---</option>
                <option value="Sim (Máx. até ás 14h)">Sim (Máx. até ás 14h)</option>
                <option value="Sim Pagando + 40€ (Máx. até ás 17h)">Sim Pagando + 40€ (Máx. até ás 17h)</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="pagamento">Valor já Pago (€): </label>
        </td>
        <td>
            <input STYLE="background-color: #fff19f; line-height:22px;" type="text" name="pagamento" id="pagamento" value="<?php echo $pagamento; ?>">
        </td>
    </tr>
    
    <tr>
        <td align="left">
            <label for="hora_chegada">Hora de Chegada: </label>
        </td>
        <td>
            <select type="text" name="hora_chegada" id="hora_chegada">
            <?php
            for ($i = 0;$i<=23;$i++)
                        {
                echo ($i < 10) ? "<option>0" . $i . ":00</option>" : "<option>" . $i . ":00</option>";
                echo ($i < 10) ? "<option>0" . $i . ":30</option>" : "<option>" . $i . ":30</option>";
                        }
            ?>    
            <?PHP echo $hora_chegada;?>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="camas_extra">Camas Extra: </label>
        </td>
        <td>
            <select name="camas_extra" id="camas_extra">
                <option value="---">---</option>
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="berco">Berço: </label>
        </td>
        <td>
            <select name="berco" id="berco">
                <option value="---">---</option>
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="pequeno_almoco">Peq. Almoço no Quarto: </label>
        </td>
        <td>
            <select name="pequeno_almoco" id="pequeno_almoco">
                <option value="---">---</option>
                <option value="Sim">Sim</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="jantar">Jantar Incluído: </label>
        </td>
        <td>
            <select name="jantar" id="jantar">
                <option value="---">---</option>
                <option value="Sim">Sim</option>
            </select name="jantar">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="data_jantar">Data do Jantar: </label>
        </td>
        <td>
            <input STYLE="line-height:22px;" type="text" name="data_jantar" id="datepicker3" value="<?php echo $data_jantar; ?>">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="animais">Nº de Animais: </label>
        </td>
        <td>
            <select name="animais" id="animais">
                <option value="---">---</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="atividades">Atividades Incluídas: </label>
        </td>
        <td>
            <select name="atividades" id="atividades">
                <option value="---">---</option>
                <option value="Mota de Água">Mota de Água</option>
                <option value="Geocaching">Geocaching</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="transporte">Serviço de Transporte: </label>
        </td>
        <td>
            <select name="transporte" id="transporte">
                <option value="---">---</option>
                <option value="Sim">Sim</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="pedido_especial">Pedido Especial: </label>
        </td>
        <td>
            <textarea STYLE="height:100px;" name="pedido_especial" id="pedido_especial" value="<?php echo $pedido_especial; ?>"></textarea>
            <input type="hidden" name="enviar" id="enviar" value="S">
    </tr>

</table>

<table align='center' width='450' border='0' cellpading='3' cellspacing='3' bgcolor='#cccc99'>
<tr>
<td bgcolor='#55572c' align='center'>
<div style=' margin-left:auto; margin-right:auto; padding:4px; border:30px solid #336666; color:#55572c; background-color:#cccccc;'>
<p align='center'>
<input type ="submit" name="submit" id="submit" value="Alterar Reserva">
&nbsp;
<input type="button" value="Ver Todas as Reservas" onclick="javascript: location.href='ver.php?page=1';" />
</p>
</div>
</td>
</tr>
</table>
</p>
</form>

</body>
</html>

<?php
}

// se a variável 'id' existir na URL, pode-se editar uma entrada
if (isset($_GET['id']))
{

// ao carregar em "Enviar", executa o formulário
if (isset($_POST['submit']))
{

// verifica se a "id" na URL é válida
if (is_numeric($_POST['id']))
{

// pega nas variáveis da URL/formulário
$id = $_POST['id'];
$nome = htmlentities($_POST['nome'], ENT_QUOTES);
$telefone = htmlentities($_POST['telefone'], ENT_QUOTES);
$email = htmlentities($_POST['email'], ENT_QUOTES);
$suite = htmlentities($_POST['suite'], ENT_QUOTES);
$tipo_reserva = htmlentities($_POST['tipo_reserva'], ENT_QUOTES);
$checkin = htmlentities($_POST['checkin'], ENT_QUOTES);
$checkout = htmlentities($_POST['checkout'], ENT_QUOTES);
$late_checkout = htmlentities($_POST['late_checkout'], ENT_QUOTES);
$pagamento = htmlentities($_POST['pagamento'], ENT_QUOTES);
$hora_chegada = htmlentities($_POST['hora_chegada'], ENT_QUOTES);
$camas_extra = htmlentities($_POST['camas_extra'], ENT_QUOTES);
$berco = htmlentities($_POST['berco'], ENT_QUOTES);
$pequeno_almoco = htmlentities($_POST['pequeno_almoco'], ENT_QUOTES);
$jantar = htmlentities($_POST['jantar'], ENT_QUOTES);
$data_jantar = htmlentities($_POST['data_jantar'], ENT_QUOTES);
$animais = htmlentities($_POST['animais'], ENT_QUOTES);
$atividades = htmlentities($_POST['atividades'], ENT_QUOTES);
$transporte = htmlentities($_POST['transporte'], ENT_QUOTES);
$pedido_especial = htmlentities($_POST['pedido_especial'], ENT_QUOTES);

{

// se tudo estiver ok atualiza as informações na base de dados
if ($stmt = $mysqli->prepare("UPDATE suites SET
nome = ?,
telefone = ?,
email = ?,
suite = ?,
tipo_reserva = ?,
checkin = ?,
checkout = ?,
late_checkout = ?,
pagamento = ?,
hora_chegada = ?,
camas_extra = ?,
berco = ?,
pequeno_almoco = ?,
jantar = ?,
data_jantar = ?,
animais = ?,
atividades = ?,
transporte = ?,
pedido_especial = ?
WHERE id=?"))

{

$stmt->bind_param("sssssssssssssssssssi",
$nome,
$telefone,
$email,
$suite,
$tipo_reserva,
$checkin,
$checkout,
$late_checkout,
$pagamento,
$hora_chegada,
$camas_extra,
$berco,
$pequeno_almoco,
$jantar,
$data_jantar,
$animais,
$atividades,
$transporte,
$pedido_especial,
$id);

$stmt->execute();
$stmt->close();
}

// se encontrar erros durante a preparação do envio mostra a mensagem de erro
else
{
echo "<br><div style='width:440px; margin-left:auto; margin-right:auto; padding:4px; border:2px solid red; color:red;'><h3><p align='center'><font color='red'><img src='imagens/alert.png' border='0'><br>Erro: Impossivel preparar corrétamente o SQL.</font></p></h3></div><br>";
}

// se a alteração for efetuada com sucesso. mostra a mensagem de sucesso
echo "<br><div style='width:440px; margin-left:auto; margin-right:auto; padding:4px; border:2px solid red; color:red;'><h3><p align='center'><font color='red'><img src='imagens/ok.png' border='0'><br>Reserva Alterada!</font></p></h3></div><br>";

// inclui a página "ver.php" abaixo da mensagem de sucesso
include("ver.php");

}
}

// se a variável "id" não for válida mostra mensagem de erro
else
{

echo "Erro: ID inválido!";
}
}

// se o formulário não foi enviado, pega nas informações da base de dados e mostra-as no formulário
else
{

// confirma se o valor da "id" é válido
if (is_numeric($_GET['id']) && $_GET['id'] > 0)
{

// pega na "id" da URL
$id = $_GET['id'];

// pega nos valor da base de dados
if($stmt = $mysqli->prepare("SELECT * FROM suites WHERE id=?"))
{

$stmt->bind_param("i", $id);
$stmt->execute();

$stmt->bind_result(
$id,
$nome,
$telefone,
$email,
$suite,
$tipo_reserva,
$checkin,
$checkout,
$late_checkout,
$pagamento,
$hora_chegada,
$camas_extra,
$berco,
$pequeno_almoco,
$jantar,
$data_jantar,
$animais,
$atividades,
$transporte,
$pedido_especial
);

$stmt->fetch();

// mostra o formulário
renderForm(
$nome,
$telefone,
$email,
$suite,
$tipo_reserva,
$checkin,
$checkout,
$late_checkout,
$pagamento,
$hora_chegada,
$camas_extra,
$berco,
$pequeno_almoco,
$jantar,
$data_jantar,
$animais,
$atividades,
$transporte,
$pedido_especial,
NULL, $id
);

$stmt->close();
}

// se existirem erros, mostra-os
else
{
echo "<br><div style='width:440px; margin-left:auto; margin-right:auto; padding:4px; border:2px solid red; color:red;'><h3><p align='center'><font color='red'><img src='imagens/alert.png' border='0'><br>Erro: Impossivel preparar corrétamente o SQL.</font></p></h3></div><br>";
}
}

// Se o valor da "id" não for válido, volta para a página ver.php
else
{

ob_start(); header("Location: ver.php"); ob_end_clean();
}
}
}

?>

Link to comment
Share on other sites

  • 0

hhh reparei agora que não aparece selecionado mas se eu clicar no seletor, la dentro aparece:

Notice:  Use of undefined constant selected - assumed 'selected' in /.../editar.php on line 110
selected 	value="Verde-Lima">Verde-Lima</option> (e essa é a opcao no db)
Edited by joanita
Link to comment
Share on other sites

  • 0

se colocar <?php echo $suite; die();?> fora do form funciona, no form (que é onde interessa aparecer para se poder editar) não aparece nada

esta assim:

        <td>
    <select name="suite" id="suite">
        <option <?php echo ($suite == 'Azul Céu') ? 'selected' : ''; ?>         value="Azul Céu">Azul Céu</option>
        <option <?php echo ($suite == 'Verde Esperança') ? 'selected' : ''; ?>         value="Verde Esperança">Verde Esperança</option>      

        <option <?php echo ($suite == 'Verde-Lima') ? 'selected' : ''; ?>         value="Verde-Lima">Verde-Lima</option>
        <option <?php echo ($suite == 'Vermelho Paixão') ? 'selected' : ''; ?>         value="Vermelho Paixão">Vermelho Paixão</option>   

            </select>

        </td>

 

Link to comment
Share on other sites

  • 0

msa que função? eu não estou a usar nenhuma função penso eu... so se esse comando php dentro do option é uma funçao... o que acontece é que como postei acima não da, mas se colocar  o que dizes noutro local da pagina já fora do form, mostra o valor guardado no db... era isso quer queria que mostrasse mas na forma de seleçao no select, tal como quando ao registar é selecionado

Link to comment
Share on other sites

  • 0

Essa é sua função:
Dentro dela, a suite é exibida?


function renderForm(
$nome = '',
$telefone = '',
$email = '',
$suite = '',
$tipo_reserva = '',
$checkin = '',
$checkout = '',
$late_checkout = '',
$pagamento = '',
$hora_chegada = '',
$camas_extra = '',
$berco = '',
$pequeno_almoco = '',
$jantar = '',
$data_jantar = '',
$animais = '',
$atividades = '',
$transporte = '',
$pedido_especial = '',
$error = '', $id = ''
)
{
Link to comment
Share on other sites

  • 0

há ok... coloquei logo abaixo de

function renderForm(


e dá este erro: Parse error: syntax error, unexpected T_ECHO, expecting '&' or T_VARIABLE in /.../editar.php on line 14

// edita uma entrada existente
function renderForm(
echo $suite;die();
$nome = '',
$telefone = '',
$email = '',
$suite = '',
$tipo_reserva = '',
$checkin = '',
$checkout = '',
$late_checkout = '',
$pagamento = '',
$hora_chegada = '',
$camas_extra = '',
$berco = '',
$pequeno_almoco = '',
$jantar = '',
$data_jantar = '',
$animais = '',
$atividades = '',
$transporte = '',
$pedido_especial = '',
$error = '', $id = ''
)
{
?>

se colocar assim funciona

// edita uma entrada existente
function renderForm(
$nome = '',
$telefone = '',
$email = '',
$suite = '',
$tipo_reserva = '',
$checkin = '',
$checkout = '',
$late_checkout = '',
$pagamento = '',
$hora_chegada = '',
$camas_extra = '',
$berco = '',
$pequeno_almoco = '',
$jantar = '',
$data_jantar = '',
$animais = '',
$atividades = '',
$transporte = '',
$pedido_especial = '',
$error = '', $id = ''
)
{echo $suite;
?>

mostra o resultado pretendido mas... não aparece no campo de selecao selecinado

Edited by joanita
Link to comment
Share on other sites

  • 0

É que você precisa colocar depois da declaração dela.
Faz assim:

[code
function renderForm(
$nome = '',
$telefone = '',
$email = '',
$suite = '',
$tipo_reserva = '',
$checkin = '',
$checkout = '',
$late_checkout = '',
$pagamento = '',
$hora_chegada = '',
$camas_extra = '',
$berco = '',
$pequeno_almoco = '',
$jantar = '',
$data_jantar = '',
$animais = '',
$atividades = '',
$transporte = '',
$pedido_especial = '',
$error = '', $id = ''
)
{
echo $suite;

die();

Link to comment
Share on other sites

  • 0

sabes, penso que assim funciona ve la:

        <option <?php echo ($suite == '<?php echo $suite;?>') ? 'selected' : ''; ?>     value="<?php echo $suite;?>"</option>

sim assim como meti funciona, mas aind á um problema... ou seja, eu no ficheiro "ver.php" se clicar em editar funciona bem, mas imagina que entretanto eu edito e mudo o valor, na minha pagina "editar.php" tenho um include que apos efetuar a alteração inclui a pagina ver.php para mostrar os resultados já alterados, e aí não aparece nada selecionado, mas basta fazer um refresh que aparece

Link to comment
Share on other sites

  • 0

Desta forma você está abrindo a tag do PHP dentro de um bloco que já está aberto.

Se você precisa dar um refresh na página, é porque tem alguma coisa errada com a ordem em que as coisas estão sendo feitas.
O ideal 'e salvar os dados antes, aí com o header, enviar pra página ver.php


header('Location? ver.php');
die();

Link to comment
Share on other sites

  • 0

para que funcionasse tive que criar mais essa opçao acima... mas continua com o problema... apos alterar o valor no "edit.php" ele mostra a mensagem de sucesso e inclui o "ver.php" e se eu logo de seguida clicar novamente em editar, o tal campo select aparece vaziu... algo me diz que o  include esta a causar isso, porque basta fazer um refresh que aparece tudo ok de novo selecionado

   <select name="suite" id="suite">
        <option <?php echo ($suite == '<?php echo $suite;?>') ? 'selected' : ''; ?>     value="<?php echo $suite;?>"</option>
        <option <?php echo ($suite == 'Azul Céu') ? 'selected' : ''; ?>         value="Azul Céu">Azul Céu</option>
        <option <?php echo ($suite == 'Verde Esperança') ? 'selected' : ''; ?>         value="Verde Esperança">Verde Esperança</option>      

        <option <?php echo ($suite == 'Verde-Lima') ? 'selected' : ''; ?>         value="Verde-Lima">Verde-Lima</option>
        <option <?php echo ($suite == 'Vermelho Paixão') ? 'selected' : ''; ?>         value="Vermelho Paixão">Vermelho Paixão</option>   

            </select>

tudo funcionaria perfeito se alguns segundos apos aparecer a mensagem, ela desaparecesse novamente e desse um refresh na pagina atual ou algo do genero...

 

é esta a mensagem:

// se a alteração for efetuada com sucesso. mostra a mensagem de sucesso
echo "<br><div style='width:440px; margin-left:auto; margin-right:auto; padding:4px; border:2px solid red; color:red;'><h3><p align='center'><font

color='red'><img src='imagens/ok.png' border='0'><br>Reserva Alterada!</font></p></h3></div><br>";

Link to comment
Share on other sites

  • 0

obrigado :) deve ser mesmo codigo mal estruturado :/ é o desesperooooooooooooooooooooooooo :) vou colar aqui o codigo como tenho atualmente para poderes ver. obrigado

 

editar.php

<?php
// liga-se à base de dados
include("ligar-bd.php");

// habilita todas as mensagens de erro do PHP
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );

// inclui os estilos da página
require_once("style.css");

// edita uma entrada existente
function renderForm(
$nome = '',
$telefone = '',
$email = '',
$suite = '',
$tipo_reserva = '',
$checkin = '',
$checkout = '',
$late_checkout = '',
$pagamento = '',
$hora_chegada = '',
$camas_extra = '',
$berco = '',
$pequeno_almoco = '',
$jantar = '',
$data_jantar = '',
$animais = '',
$atividades = '',
$transporte = '',
$pedido_especial = '',
$error = '', $id = ''
)
{
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>MMH - Editar Reserva</title>

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script type='text/javascript'>

$(document).ready(
function() {
    $("#datepicker1").datepicker({dateFormat: "dd-mm-yy"});
    $("#datepicker2").datepicker({dateFormat: "dd-mm-yy"});
    $("#datepicker3").datepicker({dateFormat: "dd-mm-yy"});
    }
);
</script>
</head>

<body>
<br>
<p align="center"><img src="imagens/logo.png" border="0"></p>
<p align='center'><titulo>EDITAR RESERVA EXISTENTE</p></titulo>

<?php if ($error != ''){echo "' . $error. '";}?>

<form action="" method="post">
<div>
<?php if ($id != ''){?>
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<p align='center'><b>RESERVA ATUAL - ID ( <font color='red'><?php echo $id; ?></font> )</b></p>
<?php }?>

<table align="center" width="450px" border="0" cellpading="4" cellspacing="8"  bgcolor="#f0f0f0">
    <tr>
        <td align="left">
            <label for="name">Nome: </label>
        </td>
        <td>
            <input STYLE="line-height:22px;" type="text" name="nome" id="nome" value="<?php echo $nome; ?>">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="telefone">Telefone: </label>
        </td>
        <td>
            <input STYLE="line-height:22px;" type="text" name="telefone" maxlength="9" size="9" onkeypress="return event.charCode >= 48 &&

event.charCode <= 57"

value="<?php echo $telefone; ?>"
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="email">Email: </label>
        </td>
        <td>
            <input STYLE="line-height:22px;" type="text" name="email" id="email" size="9" value="<?php echo $email; ?>"
        </td>
    </tr>

    <tr>
    <td align="left">
        <label for="suite">Suite: </label>
        </td>
        <td>
    <select name="suite" id="suite">
        <option <?php echo ($suite == '<?php echo $suite;?>') ? 'selected' : ''; ?>     value="<?php echo $suite;?>">---</option>
        <option <?php echo ($suite == 'Azul Céu') ? 'selected' : ''; ?>         value="Azul Céu">Azul Céu</option>
        <option <?php echo ($suite == 'Verde Esperança') ? 'selected' : ''; ?>         value="Verde Esperança">Verde Esperança</option>      

        <option <?php echo ($suite == 'Verde-Lima') ? 'selected' : ''; ?>         value="Verde-Lima">Verde-Lima</option>
        <option <?php echo ($suite == 'Vermelho Paixão') ? 'selected' : ''; ?>         value="Vermelho Paixão">Vermelho Paixão</option>   

            </select>

        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="tipo_reserva">Reservado via: </label>
        </td>
        <td>
            <select name="tipo_reserva" id="tipo_reserva">
                <option value="Booking">Booking</option>
                <option value="Trip Advisor">Trip Advisor</option>
                <option value="Site Oficial">Site Oficial</option>
                <option value="Pessoalmente">Pessoalmente</option>
                <option value="Outro">Outro</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="checkin">Check in: </label>
        </td>
        <td>
            <input STYLE="background-color: #91c200; line-height:22px;" type="text" name="checkin" id="datepicker1" value="<?php echo $checkin; ?

>">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="checkout">Check out: </label>
        </td>
        <td>
            <input STYLE="background-color: #ff1f1f; line-height:22px;" type="text" name="checkout" id="datepicker2" value="<?php echo $checkout;

?>">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="late_checkout">Late Check out: </label>
        </td>
        <td>
            <select name="late_checkout" id="late_checkout">
                <option value="---">---</option>
                <option value="Sim (Máx. até ás 14h)">Sim (Máx. até ás 14h)</option>
                <option value="Sim Pagando + 40€ (Máx. até ás 17h)">Sim Pagando + 40€ (Máx. até ás 17h)</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="pagamento">Valor já Pago (€): </label>
        </td>
        <td>
            <input STYLE="background-color: #fff19f; line-height:22px;" type="text" name="pagamento" id="pagamento" value="<?php echo $pagamento;

?>">
        </td>
    </tr>
    
    <tr>
        <td align="left">
            <label for="hora_chegada">Hora de Chegada: </label>
        </td>
        <td>
            <select type="text" name="hora_chegada" id="hora_chegada">
            <?php
            for ($i = 0;$i<=23;$i++)
                        {
                echo ($i < 10) ? "<option>0" . $i . ":00</option>" : "<option>" . $i . ":00</option>";
                echo ($i < 10) ? "<option>0" . $i . ":30</option>" : "<option>" . $i . ":30</option>";
                        }
            ?>    
            <?PHP echo $hora_chegada;?>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="camas_extra">Camas Extra: </label>
        </td>
        <td>
            <select name="camas_extra" id="camas_extra">
                <option value="---">---</option>
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="berco">Berço: </label>
        </td>
        <td>
            <select name="berco" id="berco">
                <option value="---">---</option>
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="pequeno_almoco">Peq. Almoço no Quarto: </label>
        </td>
        <td>
            <select name="pequeno_almoco" id="pequeno_almoco">
                <option value="---">---</option>
                <option value="Sim">Sim</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="jantar">Jantar Incluído: </label>
        </td>
        <td>
            <select name="jantar" id="jantar">
                <option value="---">---</option>
                <option value="Sim">Sim</option>
            </select name="jantar">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="data_jantar">Data do Jantar: </label>
        </td>
        <td>
            <input STYLE="line-height:22px;" type="text" name="data_jantar" id="datepicker3" value="<?php echo $data_jantar; ?>">
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="animais">Nº de Animais: </label>
        </td>
        <td>
            <select name="animais" id="animais">
                <option value="---">---</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="atividades">Atividades Incluídas: </label>
        </td>
        <td>
            <select name="atividades" id="atividades">
                <option value="---">---</option>
                <option value="Mota de Água">Mota de Água</option>
                <option value="Geocaching">Geocaching</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="transporte">Serviço de Transporte: </label>
        </td>
        <td>
            <select name="transporte" id="transporte">
                <option value="---">---</option>
                <option value="Sim">Sim</option>
            </select>
        </td>
    </tr>

    <tr>
        <td align="left">
            <label for="pedido_especial">Pedido Especial: </label>
        </td>
        <td>
            <textarea STYLE="height:100px;" name="pedido_especial" id="pedido_especial" value="<?php echo $pedido_especial; ?>"></textarea>
            <input type="hidden" name="enviar" id="enviar" value="S">
    </tr>

</table>

<table align='center' width='450' border='0' cellpading='3' cellspacing='3' bgcolor='#cccc99'>
<tr>
<td bgcolor='#55572c' align='center'>
<div style=' margin-left:auto; margin-right:auto; padding:4px; border:30px solid #336666; color:#55572c; background-color:#cccccc;'>
<p align='center'>
<input type ="submit" name="submit" id="submit" value="Alterar Reserva">
&nbsp;
<input type="button" value="Ver Todas as Reservas" onclick="javascript: location.href='ver.php?page=1';" />
</p>
</div>
</td>
</tr>
</table>

</p>
</form>

</body>
</html>

<?php
}

// se a variável 'id' existir na URL, pode-se editar uma entrada
if (isset($_GET['id']))
{

// ao carregar em "Enviar", executa o formulário
if (isset($_POST['submit']))
{

// verifica se a "id" na URL é válida
if (is_numeric($_POST['id']))
{

// pega nas variáveis da URL/formulário
$id = $_POST['id'];
$nome = htmlentities($_POST['nome'], ENT_QUOTES);
$telefone = htmlentities($_POST['telefone'], ENT_QUOTES);
$email = htmlentities($_POST['email'], ENT_QUOTES);
$suite = htmlentities($_POST['suite'], ENT_QUOTES);
$tipo_reserva = htmlentities($_POST['tipo_reserva'], ENT_QUOTES);
$checkin = htmlentities($_POST['checkin'], ENT_QUOTES);
$checkout = htmlentities($_POST['checkout'], ENT_QUOTES);
$late_checkout = htmlentities($_POST['late_checkout'], ENT_QUOTES);
$pagamento = htmlentities($_POST['pagamento'], ENT_QUOTES);
$hora_chegada = htmlentities($_POST['hora_chegada'], ENT_QUOTES);
$camas_extra = htmlentities($_POST['camas_extra'], ENT_QUOTES);
$berco = htmlentities($_POST['berco'], ENT_QUOTES);
$pequeno_almoco = htmlentities($_POST['pequeno_almoco'], ENT_QUOTES);
$jantar = htmlentities($_POST['jantar'], ENT_QUOTES);
$data_jantar = htmlentities($_POST['data_jantar'], ENT_QUOTES);
$animais = htmlentities($_POST['animais'], ENT_QUOTES);
$atividades = htmlentities($_POST['atividades'], ENT_QUOTES);
$transporte = htmlentities($_POST['transporte'], ENT_QUOTES);
$pedido_especial = htmlentities($_POST['pedido_especial'], ENT_QUOTES);

{

// se tudo estiver ok atualiza as informações na base de dados
if ($stmt = $mysqli->prepare("UPDATE suites SET
nome = ?,
telefone = ?,
email = ?,
suite = ?,
tipo_reserva = ?,
checkin = ?,
checkout = ?,
late_checkout = ?,
pagamento = ?,
hora_chegada = ?,
camas_extra = ?,
berco = ?,
pequeno_almoco = ?,
jantar = ?,
data_jantar = ?,
animais = ?,
atividades = ?,
transporte = ?,
pedido_especial = ?
WHERE id=?"))

{

$stmt->bind_param("sssssssssssssssssssi",
$nome,
$telefone,
$email,
$suite,
$tipo_reserva,
$checkin,
$checkout,
$late_checkout,
$pagamento,
$hora_chegada,
$camas_extra,
$berco,
$pequeno_almoco,
$jantar,
$data_jantar,
$animais,
$atividades,
$transporte,
$pedido_especial,
$id);

$stmt->execute();
$stmt->close();
}

// se encontrar erros durante a preparação do envio mostra a mensagem de erro
else
{
echo "<br><div style='width:440px; margin-left:auto; margin-right:auto; padding:4px; border:2px solid red; color:red;'><h3><p align='center'><font

color='red'><img src='imagens/alert.png' border='0'><br>Erro: Impossivel preparar corrétamente o SQL.</font></p></h3></div><br>";
}

// se a alteração for efetuada com sucesso. mostra a mensagem de sucesso
echo "<br><div style='width:440px; margin-left:auto; margin-right:auto; padding:4px; border:2px solid red; color:red;'><h3><p align='center'><font

color='red'><img src='imagens/ok.png' border='0'><br>Reserva Alterada!</font></p></h3></div><br>";

// inclui a página "ver.php" abaixo da mensagem de sucesso
include("ver.php");
}
}

// se a variável "id" não for válida mostra mensagem de erro
else
{

echo "Erro: ID inválido!";
}
}

// se o formulário não foi enviado, pega nas informações da base de dados e mostra-as no formulário
else
{

// confirma se o valor da "id" é válido
if (is_numeric($_GET['id']) && $_GET['id'] > 0)
{

// pega na "id" da URL
$id = $_GET['id'];

// pega nos valor da base de dados
if($stmt = $mysqli->prepare("SELECT * FROM suites WHERE id=?"))
{

$stmt->bind_param("i", $id);
$stmt->execute();

$stmt->bind_result(
$id,
$nome,
$telefone,
$email,
$suite,
$tipo_reserva,
$checkin,
$checkout,
$late_checkout,
$pagamento,
$hora_chegada,
$camas_extra,
$berco,
$pequeno_almoco,
$jantar,
$data_jantar,
$animais,
$atividades,
$transporte,
$pedido_especial
);

$stmt->fetch();

// mostra o formulário
renderForm(
$nome,
$telefone,
$email,
$suite,
$tipo_reserva,
$checkin,
$checkout,
$late_checkout,
$pagamento,
$hora_chegada,
$camas_extra,
$berco,
$pequeno_almoco,
$jantar,
$data_jantar,
$animais,
$atividades,
$transporte,
$pedido_especial,
NULL, $id
);

$stmt->close();
}

// se existirem erros, mostra-os
else
{
echo "<br><div style='width:440px; margin-left:auto; margin-right:auto; padding:4px; border:2px solid red; color:red;'><h3><p align='center'><font

color='red'><img src='imagens/alert.png' border='0'><br>Erro: Impossivel preparar corrétamente o SQL.</font></p></h3></div><br>";
}
}

// Se o valor da "id" não for válido, volta para a página ver.php
else
{

ob_start(); header("Location: ver.php"); ob_end_clean();
}
}
}

?>

 

 

 

aproveito e colo tambem o ver.php pode ser necessario:

ver.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>MMH - Reservas Online</title>
</head>

<body>
<br>
<p align="center"><img src="imagens/logo.png" border="0"></p>
<p align="center"><titulo>LISTA DE RESERVAS</p></titulo></p>

<?php
// liga-se à base de dados
include('ligar-bd.php');

// habilita todas as mensagens de erro do PHP
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );

// inclui os estilos da página
require_once("style.css");

// INICIO DA PAGINAÇÃO
// número de entradas exibidas por página (Paginação)
$per_page = 10;

// verifica o total de páginas na base de dados
if ($result = $mysqli->query("SELECT * FROM suites ORDER BY id"))
{

// se o número de páginas encontradas for diferente de zero
if ($result->num_rows != 0)
{

$total_results = $result->num_rows;

// ceil () retorna o próximo valor inteiro maior, arredondando para cima desse valor se necessário
$total_pages = ceil($total_results / $per_page);

// verifica se a variável "page"está indicada na URL (ex: ver.php?page=1)
if (isset($_GET['page']) && is_numeric($_GET['page']))
{

$show_page = $_GET['page'];

// confirma se o valor de $show_page é válido
if ($show_page > 0 && $show_page <= $total_pages)
{

$start = ($show_page -1) * $per_page;
$end = $start + $per_page;
}

// erro - mostra o primeiro conjunto de resultados
else
{
$start = 0;
$end = $per_page;
}
}

// se a página não for selecionada mostra o primeiro conjunto de resultados
else
{
$start = 0;
$end = $per_page;
}
// FIM DA PAGINAÇÃO

// mostra a tabela
echo "<table align='center' width='500' border='0' cellpading='3' cellspacing='3' bgcolor='#ffffff'>";
    echo "<tr> <th height='30' bgcolor='#cccc99'>ID</th> <th bgcolor='#336666'><font color='#ffffff'>Nome</font></th> <th bgcolor='#336666'><font color='#ffffff'>Suite</font></th> <th bgcolor='#336666'><font color='#ffffff'>Opções</font></th></tr>";

// faz um loop aos resultados encontrados na base de dados e exibe-os na tabela
for ($i = $start; $i < $end; $i++)
{

// verifica se o PHP não está a tentar exibir resultados que não existam
if ($i == $total_results) { break; }

// encontra uma linha específica
$result->data_seek($i);
$row = $result->fetch_row();

// mostra o conteúdo de cada linha na tabela
echo "<tr>";
        echo '<td bgcolor="#cccc99" align="center"><txt1>' . $row[0] . '</txt1></td>';
        echo '<td bgcolor="#ccccff" align="center"><txt2>' . $row[1] . '</txt2></td>';
        echo '<td bgcolor="#99ccff" align="center"><txt2>' . $row[2] . '<txt2></td>';
        echo '<td bgcolor="#cccc99" align="center"><txt1><b><i>&nbsp;<a href="individual.php?id=' . $row[0] . '"><img src="imagens/ver.png" border="0" alt="ver"></a>&nbsp;&nbsp;<a href="editar.php?id=' . $row[0] . '"><img src="imagens/editar.png" border="0" alt="editar"></a>&nbsp;&nbsp;<a href="apagar.php?id=' . $row[0] . '"><img src="imagens/apagar.png" border="0" alt="apagar"></a>&nbsp;</i></b></txt1></td>';
        echo "</tr>";
}

// fecha a tabela
echo "</table>";
}

// se não encontrar resultados mostra a mensagem
else
{
echo "Sem resultados!";
}
}

// se existirem erros na consulta mostra-os
else
{
echo "Erro de Consulta: " . $mysqli->error;
}
?>

<table align='center' width='500' border='0' cellpading='3' cellspacing='3' bgcolor='#cccc99'>
<tr>
<td>
<div style=' margin-left:auto; margin-right:auto; padding:4px; border:30px solid #336666; color:#55572c; background-color:#cccccc;'>

<?php
echo '<p align="center"><img src="imagens/cliente.png" border="0"></p>';

// define a data de inicio da epoca alta
$inicio_alta = new DateTime("01-04-2016"); //exemplo

//adiciona 5 meses a essa data
$fim_alta = $inicio_alta->add(new DateInterval("P5M"));
    
// contagem total de resultados
$query = $mysqli->prepare("SELECT id FROM suites");
$query->execute();
$query->store_result();
$t_rows = $query->num_rows;
echo"<p align='center'><font size='5'>Existem atualmente <b>"; echo $t_rows; echo "</b> reserva(s).</font></p>";
// fim da contagem total de resultados

// mostra a mensagem com a data do final da epoca alta
echo "<p align ='center'><txt1>Configuração atual da Época Alta:</txt1><br>";
echo "<b>01-04-2016</b> a <b>";
echo $fim_alta->format("d-m-Y");
echo "</b></p><hr size='1'>";

// mostra a paginação
echo "<p align='center'></b> ";
for ($i = 1; $i <= $total_pages; $i++)
{
echo "| ";
if (isset($_GET['page']) && $_GET['page'] == $i)
{
echo $i . " ";
}

else
{
//echo "| ";
echo "<a href='ver.php?page=$i'>$i</a> ";
}
}
echo " |</p>";

$mysqli->close();
?>

<p align='center'>
<input type="button" value="Adicionar Nova Reserva" onclick="javascript: location.href='adicionar.php';" />
&nbsp;
<input type="button" value="Outra Página Qualquer" onclick="javascript: location.href='outra-pagina.php?page=1';" />
</p>
</div>

</td>
</tr>
</table>
</body>
</html>

Edited by joanita
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...