webForumDet fria alternativet

Får inte med $id vid submit

PHP

71 svar · 3 204 visningar · startad av maweer · sida 4 av 4

Frågan, av maweer

Jag borde egentligen kanske inte startat en ny tråd, då jag redan har berört detta i en tidigare. Ber om ursäkt i så fall! Men, då felet egentligen inte har med den andra tråden att göra, så valde jag att jag göra så här. (dock är det samma kod) :) Nu till min fråga: Hur får jag med värdet från id i en submit? Jag får nämligen inte det nu när jag submitar mitt formulär Ber nu om ursäkt för mycke

Läs frågan i sin helhet →
Medlem sedan juli 2012123 inlägg
#61

Det enda som hände var att den skrev ut
Före if
Efter if
Längs upp

Jag kanske har lagt den galet
Jag har iof testat att flytta min if-sats men, det gillade den inte

<?php 
include "conn.php"; 

if(isset($_POST['spara'])) { // om knappens namn är spara  
    $sql = " 
      UPDATE eva_spelningar 
         SET tony = '1',
             ulf = '1',
             carina = '1',
             anders = '1',
             magnus = '1' 
       WHERE id = {$_POST['id']}
    ";
	echo($sql);
	exit;
    mysql_query($sql) or die(mysql_error()); 
    
    header("Location: form.php?id=".$_POST['id']);
    exit;
}

?> 
 
<!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" dir="ltr" lang="sv">
  
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <title>Eva Evenemang</title> 

<style type="text/css"> 
<!-- 
body { 
   font-family: Arial; 
   font-size: 11px; 
   background: #FFFFFF; 
   fontcolor="#003366"
} 

a {text-decoration: none} 

.intro {
	color: red;
}
 
form { 
   width: 50%; 
   align: center; 
   background: #F5F5F5; 
   border: 1px solid #E4E4E4; 
} 
 
#form { 
   width: 50%; 
   align: center; 
   background: #F5F5F5; 
   border: 1px solid #E4E4E4; 
   padding: 5px; 
} 
 
.padding { 
   padding: 5px; 
} 

table.gridtable {
	font-family: verdana,arial,sans-serif;
	font-size:11px;
	color:#333333;
	border-width: 0px;
	border-color: #666666;
	border-collapse: collapse;
        width: 180%;
}
table.gridtable th {
	border-width: 0px;
        text-align:left;
	padding: 4px;
	border-style: solid;
	border-color: #666666;
	background-color: #dedede;
}
table.gridtable td {
	border-width: 0px;
	padding: 4px;
	border-style: solid;
	border-color: #666666;
	background-color: #ffffff;
}

table.gridtable tr {
	border-width: 0px;
	padding: 4px;
	border-style: solid;
	border-color: #666666;
	background-color: #d4e3e5;
}

.datum {
    width: 80px;
 }

.tid {
    width: 10px;
 }

.plats {
    width: 400px;
 }

.namn {
    width: 90px;
 }
img { border: 0px; }

.red { color: #ff0000;"}
--> 
</style>

</head> 
<body> 

<div id="form">
      <form id="form1" method="post" action="write.php" enctype="multipart/form-data" class="padding">
        <input type="hidden" name="MAX_FILE_SIZE" value="3000" />
        <fieldset>
          <label>Tid <span class="red">(ex. 13:00)</span><br />
            
            <input type="text" name="tid" style="width: 160px;" /></label><br />
          
          <label>Datum <span class="red">(Y-M-D)</span>:<br />
            
            <input type="text" name="datum" style="width: 160px;" /></label><br />
          
          <label>Var:<br />
            
            <input type="text" name="plats" style="width: 160px;" /></label><br />
          
          <label>Detaljerad beskrivning:<br />
            <textarea name="beskrivning" cols="35" rows="6"></textarea></label><br />
          
          <br />
          <input type="file" name="karta" />&nbsp;<input type="submit" name="klar" value="Skicka" />
          
          
        </fieldset>
      </form>
    </div>
    
    <h2>Alla evenemang</h2>

<?php

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

    if (mysql_num_rows($sql) == 0)  {
      echo "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("<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">");

      echo("<input type=\"hidden\" name=\"id\" value=\"{$rad['id']}\" />");

      echo('<table class="gridtable">'); 
      echo("<tr>");
      echo('<th class="datum">Datum</th>'); 
      echo('<th class="tid">Tid</th>');
      echo('<th class="plats">Plats</th>'); 
      echo('<th class="namn">Tony</th>'); 
      echo('<th class="namn">Ulf</th>'); 
      echo('<th class="namn">Carina</th>'); 
      echo('<th class="namn">Anders</th>'); 
      echo('<th class="namn">Magnus</th>'); 
      echo("<td><a href=\"delete.php?id={$rad['id']}\" onclick=\"javascript:return confirm('Säkert att du vill radera ?');\"><img src=\"delete.gif\" alt=\"Image\" /></a></td>");
      echo("<td>&nbsp;</td>");
      echo("<td><a href=\"beskrivning.php?id={$rad['id']}\">Läs mer!</a></td>"); 
      echo("</tr>");

      echo("<tr>");

      echo("<td>");
      echo($rad["datum"]); 
      echo("</td>");

      echo("<td>"); 
      echo($rad["tid"]);
      echo("</td>");

      echo("<td>"); 
      echo($rad["plats"]);
      echo("</td>");

      echo('<td> <input type="checkbox" name="tony" value="tony" /> </td>');

      echo('<td> <input type="checkbox" name="ulf" value="ulf" /> </td>');

      echo('<td> <input type="checkbox" name="carina" value="carina" /> </td>');

      echo('<td> <input type="checkbox" name="anders" value="anders" /> </td>');
      echo('<td> <input type="checkbox" name="magnus" value="magnus" /> </td>');
      echo('<td> <input type="submit" value="Spara" name="Spara" /> </td>');

      echo("</tr>");

      echo("</table>");

      echo('</form>');
   } 
?>

    
  </body> 
</html>
Medlem sedan juni 20019 519 inlägg
#62

Vilken webbläsare testar du den i? IE har problem med att skicka value på en submit knapp, just as you know.

Medlem sedan juli 2012123 inlägg
#63

Jag har testat den i IE och Chorme

Medlem sedan jan. 2005953 inlägg
#64

Du har name="Spara" på din submit-knapp, men kollar ifall $_POST['spara'] är satt. PHP gör skillnad på Spara och spara

Medlem sedan juli 2012123 inlägg
#65

Ja jisses...det har jag inte sett. Jag brukar vara väldigt noga med sånt, men jag har inte tänkt på det denna gången :r
Har nog fokuserat på de andra konstigheterna som har varit....förlåt!

Nu skrev den ut $sql, och nu lägger den in 1 i min tabell också och på rätt id....yey :) :)
Fast, kryssar jag i t.ex magnus så kommer där en 1:a på de andra fyra posterna också. Skall jag byta ut min 1 mot en 0 och använda mig av
REPLACE(magnus, ´0´, ´1´, anders, ´0´, ´1´, carina, ´0´, ´1´)
Fast, det kanske är lite långsökt

Medlem sedan juni 20019 519 inlägg
#66

Det är ju det du har dina:

$tony = isset($_POST['tony']) ? 1 : 0; 
$ulf = isset($_POST['ulf']) ? 1 : 0; 
$carina = isset($_POST['carina']) ? 1 : 0; 
$anders = isset($_POST['anders']) ? 1 : 0; 
$magnus = isset($_POST['magnus']) ? 1 : 0;

använd de variablerna in i din SQL fråga. Om du har dina checkboxar marekrade så kommer alla variabler få värdet 1 annars 0 något i stil med:

$sql = "  
        UPDATE eva_spelningar 
         SET tony = '{$tony}',
             ulf = '{$ulf}',
             carina = '{$carina}',
             anders = '{$anders}',
             magnus = '{$magnus}' 
       WHERE id = {$_POST['id']}
    ";
Medlem sedan juli 2012123 inlägg
#67

Okej, jag förstår...men, ändå inte tydligen :)

tony = '{$tony}' ? 1 : 0,

Gav den mig ett felmeddelande You have an error in your SQL syntax och när jag skrev

tony = '{$tony} ? 1 : 0',

La den in ? 1 : 0

Testade också
SET $tony = ['tony'] ? 1 : 0,
Men, fick också error

Medlem sedan juni 20019 519 inlägg
#68

Nu blandar du ihop PHP och sql, se min kod i förra inlägget, ena är PHP kod och den andra är din sql sträng som ta in PHP variabler

Medlem sedan juli 2012123 inlägg
#69

Jaha, jag tror jag hänger med dig :) OBS! Bara tror

<?php 
include "conn.php"; 

$tony = isset($_POST['tony']) ? 1 : 0; 
$ulf = isset($_POST['ulf']) ? 1 : 0; 
$carina = isset($_POST['carina']) ? 1 : 0; 
$anders = isset($_POST['anders']) ? 1 : 0; 
$magnus = isset($_POST['magnus']) ? 1 : 0;

if(isset($_POST['Spara'])) { // om knappens namn är spara  
$sql = " 
      UPDATE eva_spelningar 
         SET tony = '{$tony}',
             ulf = '{$ulf}',
             carina = '{$carina}',
             anders = '{$anders}',
             magnus = '{$magnus}' 
       WHERE id = {$_POST['id']}
    ";

    mysql_query($sql) or die(mysql_error()); 
    
    header("Location: form.php?id=".$_POST['id']);

}

?>

Fast jag måste nog ha gjort något fel. För om jag kryssar i tony så blir han ju givetvis 1 och dom andra 0. Men, om jag kryssar i något annat namn så blir den 1 men, då ändras tony till 0 plus att man ser inte i webläsaren om rutan är "checked" eller inte

Måste jag lägga in nått sånt här någon stans också kanske?

if(isset($_POST['tony'])?'checked="checked"':'')
Medlem sedan juni 20019 519 inlägg
#70

du få ju sätta checked för varje rad... inte vad du har postat ett formulär som, och lägg variablerna inne i if frågan, är ju lite onödigt att kolla efter $_post hela tiden.

koden du har där lägger du inne som sagt i varje checkbox, men istället för att kolla $_post så kollar du efter $rad["tony"] (dvs nere i din kod där du rendera ut dina tabeller).

Medlem sedan juli 2012123 inlägg
#71

JAAAAA det funkade :) :)
Och nu funkar allt som det skall...härligt...är verkligen super glad :)
Jag gjorde så här:

echo('<td> <input type="checkbox" name="tony" value="tony"' . ($rad['tony']==1 ? ' checked="checked"' : '') . ' /> </td>');

Stort, stort tack till alla som har hjälpt mig i denna tråden!!

Jag har lärt mig hur mycket nytt som helst som jag förhoppningsvis kommer ihåg och kan omsätta till nya projekt.
Jag är väldigt ödmjuk inför er allas kunskaper och bugar mig därför väldigt djupt inför er alla!!!

Där har ju varit så många rätta lösningar, så jag vet faktiskt inte vilken man skall markera som den rätta då man bara kan markera en.

Ännu en gång ett stort tack och ett stort tack för ert tålamod.

Medlem sedan juni 200032 967 inlägg
#72

Jag har lärt mig hur mycket nytt som helst som jag förhoppningsvis kommer ihåg och kan omsätta till nya projekt.

Härligt! :bire

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)