webForumDet fria alternativet

Uppdatera med checkboxar

4 svar · 711 visningar · startad av maweer

maweerMedlem sedan juli 2012123 inlägg
#1

Borde kanske gett upp detta för länge sedan, då detta förmodligen är över min nivå :P

Men, så här ligger det till:
Tanke är att man skall fylla i ett formulär när man har fått en ny spelning.
Sen skrivs alla spelningar ut men samtidigt så läggs checkboxar till och det är här problemet kommer.

Jag vill att varje person skall kunna "checka" i om den kan vara med på spelningen.
Men, problem nr. 1 är att jag får inte informationen till databasen och problem nr. 2 är att jag vet inte hur man skall få den att förbli "checked".

Frågorna är hur gör man detta och kan man göra detta på ett smidigare sätt än vad jag har försökt att göra? För just nu har jag en kolumn för varje namn

write.php skriver till tabellerna i databasen och med form.php ligger mitt forumlär, utskrift av tabellerna och koden för att uppdatera.

Detta är form.php

<form action="write.php" method="post" enctype="multipart/form-data" class="padding">
<input type="hidden" name="MAX_FILE_SIZE" value="3000">
<div align="left">
 
 
 
<b><FONT FACE="Arial" SIZE=1 COLOR="#003366">Tid <font color="#FF0000">(ex. 13:00)</font>:</b><br>
 
<input type="text" name="tid" style="width: 160px;"><br>
 
<b><FONT FACE="Arial" SIZE=1>Datum <font color="#FF0000">(Y-M-D)</font>:</b><br>
 
<input type="text" name="datum" style="width: 160px;"><br>
 
<b><FONT FACE="Arial" SIZE=1>Var:</b><br>
 
<input type="text" name="plats" style="width: 160px;"><br>
 
<b><FONT FACE="Arial" SIZE=1>Detaljerad beskrivning:</b><br>
<textarea name="beskrivning" cols="35" rows="6"></textarea><br>
 
 
<br>
<input type="file" name="karta">&nbsp;<input type="submit" name="klar" value="Skicka">
</form>

</div> 
</form></div>
<font face=Georgia size=2><b>Alla evenemang<P>
</font>
<div>
<?php 

$sql = mysql_query("SELECT * FROM eva_spelningar ORDER BY id DESC"); 

if (mysql_num_rows($sql) == 0)  {
   echo "</b><font face=Georgia size=2 color=black>För tillfället finns inga evenemang";
}

while ($rad = mysql_fetch_array($sql))

 { 

   $id = $rad['id'];
   $tid = $rad['tid']; 
   $datum = $rad['datum'];
   $plats = $rad['plats']; 

   
   echo("<div align=\left\><div id=\form\>");
   echo("<table border=0 cellpadding=1 cellspacing=1 bordercolor=000000>"); 
   echo(" <td witdh=300><tr>");
   echo("<tr  width=150 class=listrow onMouseOver=this.style.backgroundColor='#cccccc' onMouseOut=this.style.backgroundColor='#ffffff'>");
   echo("<td width=90><font face=Georgia size=2><b>Datum</td>
<td><font face=Georgia size=2><b>Tid</td>
<td width=400><b><font face=Georgia size=2>Plats</td>
<td width=100><font face=Georgia size=2><b>Namn1</td>
<td width=100><font face=Georgia size=2><b>Namn2</td>
<td width=100><font face=Georgia size=2><b>Namn3</td>
<td width=100><font face=Georgia size=2><b>Namn4</td>
<td width=100><font face=Georgia size=2><b>Namn5</td>
<td><a href=\"delete.php?id={$rad['id']}\" onclick=\"javascript:return confirm('Säkert att du vill radera ?');\"><IMG SRC=delete.gif border=0></a></td><td>&nbsp;</td><td><a href=\"$url\">Läs mer!</a></td><tr>");

   echo("<td><font face=Georgia size=2>");
   echo($rad["datum"]); 
   echo("</td>");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo($rad["tid"]);
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo($rad["plats"]); 
   echo("&nbsp<td><font face=Georgia size=2>"); 
   ("<form method=\"post\" action=\"form.php\">");
   echo("<input type=\"checkbox\" name=\"namn1\" value=\"namn1\">");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn2\" value=\"namn2\">");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn3\" value=\"namn3\">");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn4\" value=\"namn4\">");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn5\" value=\"namn5\">");
   echo("<td>");
   echo("<input type=\"submit\" name=\"update\" value=\"Spara\">");
   
echo("<tr>");

} 

if(isset($_POST['Spara'])) { // om knappens namn är spara 
    $sql = "
      UPDATE eva_spelningar 
      SET namn1 = '{$_POST['namn1']}',
          namn2 = '{$_POST['namn2']}',
          namn3 = '{$_POST['namn3']}',
          namn4 = '{$_POST['namn4']}',
          namn5 = '{$_POST['namn5']}'
      WHERE id = '{$_POST['id']}'
    "; 
    mysql_query($sql) or die(mysql_error());

   header("Location: form.php?id=".$_POST['id']);
    exit;

}
maweerMedlem sedan juli 2012123 inlägg
#2

Jag hittade en lösning av metalboy som iaf gjorde att 1 och 0 skrevs in i min tabell.

Men, problem är nu att om jag gjorde så här och tryckte på "Spara":

if(isset($_POST['Spara'])) { // om knappens namn är spara 

$namn1 = isset($_POST['namn1']) ? 1 : 0;
$namn2 = isset($_POST['namn2']) ? 1 : 0;
$namn3 = isset($_POST['namn3']) ? 1 : 0;
$namn4 = isset($_POST['namn4']) ? 1 : 0;
$namn5 = isset($_POST['namn5']) ? 1 : 0;

$insert = "INSERT INTO ".eva_spelningar." (namn1, namn2, namn3, namn4, namn5)
          VALUES ('$namn1', '$namn2', '$namn3', '$namn4', '$namn5')";

       mysql_query($insert);
   
  header("Location: form.php");

}

så lagrades ingen info (alltså 1 och 0).
Men, om jag plockade bort if(isset($_POST['Spara'])) { // om knappens namn är spara och sista måsvingen så lagrades informationen varje gång sidan laddades. Men...då blev det också att koden la till en tom post varje gång också.

Jag vill ju kunna använda min submitknapp för att spara infon.
Problemet kanske är att jag har två submitknappar i samma skript?

voigtann1Medlem sedan juni 20019 519 inlägg
#3

Du kan inte ha ett <form> element inne i ett annat <form> element.

maweerMedlem sedan juli 2012123 inlägg
#4

Aha...eller rättaresagt ajdå :)
Finns det någon annan lösning?

maweerMedlem sedan juli 2012123 inlägg
#5

Nu har jag kommit så här långt iaf :)
Jag har lagt detta efter all min php kod. Så nu har jag väl inget <form> element inne i ett annat <form> element....väl...ju?

<html> 
<head> 
</head> 
<body> 
<form method="post" action="form.php">

<?php        
if(isset($_POST['Spara'])) { // om knappens namn är spara 

$namn1 = isset($_POST['namn1']) ? 1 : 0;
$namn2 = isset($_POST['namn2']) ? 1 : 0;
$namn3 = isset($_POST['namn3']) ? 1 : 0;
$namn4 = isset($_POST['namn4']) ? 1 : 0;
$namn5 = isset($_POST['namn5']) ? 1 : 0;

$insert = "INSERT INTO ".eva_spelningar." (namn1, namn2, namn3, namn4, namn5)
          VALUES ('$namn1', '$namn2', '$namn3', '$namn4', '$namn5')";

       mysql_query($insert);
}

   echo("<td><font face=Georgia size=2>");
   echo($rad["datum"]); 
   echo("</td>");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo($rad["tid"]);
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo($rad["plats"]); 
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn1\" value=\"namn1\">");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn2\" value=\"namn2\">");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn3\" value=\"namn3\">");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn4\" value=\"namn4\">");
   echo("&nbsp<td><font face=Georgia size=2>"); 
   echo("<input type=\"checkbox\" name=\"namn5\" value=\"namn5\">");
   echo("<td>");
   echo("<input type=\"submit\" name=\"Spara\" value=\"Spara\">");
   
echo("<tr>");

} 
 header("Location: form.php");
  exit;

?>    

</div>
<style type="text/css"> 
a {text-decoration: none} 
<style> 
  
</body> 
</html>

Nu sätter den i alla fall en 1:a vid rätt person, och samtidigt så lägger den till en massa extra tomma poster och i dom tomma posterna så finns 1:an. Så något är ju riktigt tokfel...men vad :)
Vore jätte tacksam för hjälp :)

137 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)