WinFuture-Forum.de: Form,checkbox Im Array? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Form,checkbox Im Array?


#1 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

geschrieben 30. Januar 2007 - 18:52

Hallo, ich bin hier schon seid Stunden am rumfriemeln und komme einfach nicht weiter.
Es geht darum, dass ich daten aus einer DB auslese und sie nach betätigen der checkboch automatisch aktualisiert werden sollen (ohne sende button)(anzahl der boxen stehen im Array). Da Problem dabei ist, das ich mir gedacht habe für jede box ein Formtag zu machen. Wenn ich das Array auf 1 begreze klappt es wunderbar, werden es aber mehr als 1 geht nich mehr, was ja logisch ist, weil der Form name dann ja doppelt ist. Ich weis einfach nicht wie ich für jeden einen anderen namen vergebe, ich habe es schon versucht über die $id zu lösen aben dann funktionierrt mein onclick="document.Formular.submit()" nicht und onclick="document.<? echo"". $row["id"] ."";?>.submit()" so is betimmt völlig verkert. Lasse ich das automatische aktualisieren weg und trage statdessen für jeden Form tag einen submit button ein funktioniert es auch, aber das Formular soll abgesendet werden, sofern sich der Wert checked in den jeweiliegen checkboxen ändert.

Kann mir vieleicht jemand einen Tip geben? wäre super.

aber hier mal der code zum nachvolziehen.

 <?
$idatum=
array("01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
		
for ($i=0;$i<31;$i++)
{
 $result = mysql_query("SELECT * FROM $dbtab WHERE monat='Januar'AND tag='" . $idatum[$i] . "'");
		
	while ($row = mysql_fetch_array($result))
	{  if ($row["belegt"] == "1")
	{ ?>    </td>

  <form action="<? echo"".$PHP_SELF."?id=". $row["id"] ."";?>" method="post" name="Formular" id="Formular">
	<td align="center"><input name="<? echo"". $row["tag"] ."";?>" type="checkbox" onclick="document.Formular.submit()" value="tag" checked="checked"></td>
  </form>
    <?  }
	
else
{?>
 <form action="<? echo"".$PHP_SELF."?id=". $row["id"] ."";?>" method="post" name="Formular" id="Formular">
	 <td align="center"><input name="<? echo"". $row["tag"] ."";?>" type="checkbox" value="tag" onclick="document.Formular.submit()"></td>
 </form>
<? }
  }
 } 
?>
		 

Witi: Habe den Kram in den Codebox-Tag gesetzt. Bitte in Zukunft bei längerem Quellcode auch benutzen.

Dieser Beitrag wurde von -=[Mad]=- bearbeitet: 05. Februar 2007 - 11:45

0

Anzeige



#2 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

geschrieben 05. Februar 2007 - 07:38

Hat den hier wirklich niemad einen Tipp für mich?
0

#3 Mitglied ist offline   asko 

  • Gruppe: aktive Mitglieder
  • Beiträge: 144
  • Beigetreten: 17. November 02
  • Reputation: 0

geschrieben 05. Februar 2007 - 09:45

Die Codeboxen hier sind Sch*** und der chaotische Code trägt auch nicht gerade zur Lesbarkeit bei. Wieso übergibst Du $row["belegt"] als ID? Sollte da nicht eher sowas wie $row["id"] im action-TAG stehen?
0

#4 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

geschrieben 05. Februar 2007 - 11:04

So chaotisch find ich den garnet, (hab ihn eben bischen übersichtlicher gemacht) lass mich aber gern belehren, bzw. neme tips an wie es besser geht.
mit $row["id"] hab ichs nu auch abgeändert, aber das is nict mein Problem. Das muß bei der Beschriftung des Formtags liegen denke ich. hab nur 0 Plan was, wie ich das ändern kann.

Dieser Beitrag wurde von -=[Mad]=- bearbeitet: 05. Februar 2007 - 11:54

0

#5 Mitglied ist offline   asko 

  • Gruppe: aktive Mitglieder
  • Beiträge: 144
  • Beigetreten: 17. November 02
  • Reputation: 0

geschrieben 05. Februar 2007 - 11:54

Versuch mal das hier...

<?php
$idatum=array(	"01","02","03","04","05","06","07","08","09","10",
				"11","12","13","14","15","16","17","18","19","20",
				"21","22","23","24","25","26","27","28","29","30","31"
			);

for ($i=0;$i<31;$i++)
{
	$result = mysql_query("SELECT * FROM $dbtab WHERE monat='Januar'AND tag='" . $idatum[$i] . "'");
	while ($row = mysql_fetch_array($result))
	{
?>
		<form action="<?php echo $_SERVER['PHP_SELF']. '?id=' .$row["id"]; ?>" method="post" name="<?php echo 'Formular' .$row["id"]; ?>" id="<?php echo 'Formular' .$row["id"]; ?>">
		<td align="center"><input name="<?php echo $row["tag"]; ?>" type="checkbox" onclick="<?php echo 'document.Formular' .$row["id"]. '.submit()'; ?>" value="<?=$idatum[$i];?>" <?php echo ($row["belegt"] == "1") ? 'checked="checked"' : ''; ?>></td>
		</form>
	
<?php
	}
}
?>


Selbstredend das der Code ungetestet ist.

Dieser Beitrag wurde von asko bearbeitet: 05. Februar 2007 - 11:55

0

#6 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

geschrieben 05. Februar 2007 - 12:16

Danke das funktioniert bestens, aber ich kann nich wirklich nachvolziehen, war meine if abfrage zu viel und ging es deshalb nicht?
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0