Ir para conteúdo
Fórum Script Brasil
  • 0

DÚVIDA! Comofazer MultiSelect Box


SofiaR

Pergunta

Olá!!!

Tenho um formulario o qual insiro os dados, é feita a confirmação dos dados inseridos e depois é gravado na base de dados numa tabela chamada remedy. Após gravar na base de dados, ele apresenta um formulário com uma caixa de selecção múltipla com as plantas (que estão na base de dados e que também foram introduzidas anteriormente na tabela plant)onde escolho as que vão estar associadas a esse remédio que foi introduzido.Após selecção ele terá que inserir numa outra tabela(tabela remedy_has_plant) o "id" do remedio introduzido e os "ids" das plantas seleccionadas.

A parte de inserção do remédio, está a funcionar correctamente, só ainda não está ligado ao formulário que irá conter a select box (tb não sei muito bem como fazer)

Aqui vai o código:

Formulário Remedio(html)

// Contem codigo html (que não valia a pena postar e logo a seguir tenho)

<script type="text/javascript">
function validaForm()
{
   d = document.remedyForm;

        //validate name
        if (d.name.value == ""){
           alert("The field " + d.name.name + " must be completed!");
                d.name.focus();
                return false;
        }
        //validate Instruction Remedy
        if (d.rem_instr.value == ""){
                alert("The field " + d.rem_instr.name + " must be completed!");
                d.rem_instr.focus();
                return false;
        }
   
        //validate Type Remedy
        if (d.rem_type.value == ""){
                alert("The field " + d.rem_type.name + " must be completed!");
                d.rem_type.focus();
                return false;
        }
   

   //validate information before insert into the database
   confirmation=confirm("Is the information correct?\n\nName: "+d.name.value+"\nInstruction Remedy: "+d.rem_instr.value+"\nType Remedy:"+d.rem_type.value);
   if(confirmation==false)
   {
      d.name.focus();
      return false;
   }
   else
   return true;
}

</script>
<body><form name="remedyForm" action="remedy.php" method="POST" onSubmit="return validaForm()">
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr> 
<td height="45" class="style2"><span class="style2">Name:</span></td>
<td class="style2"><input name="name" class="style2"="text"></td>
</tr>
<tr> 
<td height="46" class="style2"><span class="style2">Instruction Remedy:</span></td>
<td class="style2"><input name="rem_instr" type="text" class="style2"></td>
</tr>
<td height="44" class="style2"><span class="style2">Type Remedy:</span></td>
<td class="style2"><input name="rem_type" type="text" class="style2"></td>
</tr>
<tr> 
<td colspan="2" class="style2">
<div align="right"> 
<input name="Submit" type="submit" class="style2" value="Submit">
</div>
</td>
</tr>
</table>
</form>
    <p> </p>
    <!-- end #mainContent --></div>
<br class="clearfloat" />
   <!-- end #container -->
</div>
</body>
</htm>
Ficheiro remedio.php(responsável pela inserção):
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error connecting to mysql');

$dbname = 'sgbd080916';
mysql_select_db($dbname);
?>


<!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=iso-8859-1" />
<title>SGBD080916</title>
<style type="text/css">
<!--
#a {
   font-family: "Myriad Pro";
   font-size: x-large;
   font-style: normal;
   color: #003300;
   text-decoration: none;
}
-->
</style>
</head>
<body>


<?php

$name = $_POST['name'];
$rem_instr = $_POST['rem_instr'];
$rem_type = $_POST['rem_type'];
mysql_query("insert into remedy(name,rem_instr,rem_type) values('$name','$rem_instr','$rem_type')") or print(mysql_error());
mysql_close($conn);?>
<h3>The information was introduced successfully!</h3>
<h3 align="center"><a href="index.html" id="a">Home Page </a></h3>



</body>
</html>
E por fim a parte do codigo da select box que consegui fazer, ele já está a apresentar no ecrã os dados da planta, essa parte funciona. O que falta é o resto após selecção colocar os dados na tabela remedy_has_plant:
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error connecting to mysql');

$dbname = 'sgbd080916';
mysql_select_db($dbname);

$sql = mysql_query("SELECT name_local FROM plant"); // código sql que selecciona a tabelas com os dados

echo'<form method="POST" action="plant.php">';
echo"<p>";
while($plant = mysql_fetch_array($sql))
{
        //cria uma variavel nome
      $name_local= $plant['name_local'];
               //echo "<input type='checkbox' name='$name_local'value='$name_local'><br>";
               echo " <input type='checkbox'> $name_local <br>";
               echo($name);
        
        echo("<br>");
      
}
echo'<input type="submit" value="Enviar">';
echo"</p>";
echo"</form>";

echo'<p align="center"><BR><a href="java script:history.back(1);">Go back</a></p>';
mysql_query("INSERT INTO remedy_has_plant(remedy_id, plant_id) VALUES ('$remedy_id', '$plant_id');");
if(!mysql_query) {
die ("Erro ao inserir na base de dados!");
}
//fexando conexão com o mysql.
mysql_close($conn);
?>

Editado por SofiaR
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...