WinFuture-Forum.de: Interaktives Formular - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Interaktives Formular Felder bei Bedarf einblenden


#1 Mitglied ist offline   felisse.courage 

  • Gruppe: aktive Mitglieder
  • Beiträge: 211
  • Beigetreten: 03. April 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Dresden
  • Interessen:grafik-/webdesign

  geschrieben 06. Juni 2007 - 16:52

hallo leute!

ich habe folgendes formular:
<form enctype="multipart/form-data" class="databox2" action="start.php?page=projekte.examples.inc.php&catname=<?php echo $catname ?>" method="post">
	
	Name des Projekts:<br />
	<input size="50" type="text" name="examname" value="<?php echo $_REQUEST['examname'] ?>" /><br />
	
	Beschreibung des Projekts:<br />
	<textarea cols="80" rows="5" name="examdesc"><?php echo $_REQUEST['examdesc'] ?></textarea><br />
	
	Bilder hinzufügen:<br />
	<?php
	$bilderanzahl = 4;
	
	
	for ($i=1; $i<=$bilderanzahl; $i++)
	{
	?>
		<input size="50" type="file" name="pic<?php echo $i; ?>" /><br />
	<?php
	}
	?>
	<input type="text" size="1" maxlength="2" name="bilderanzahl" /> 
	<input type="button" value="Bilder hinzufügen" />
		
	<br /><br />
		
	<input type="submit" value="Hinzufügen" />
	<input type="hidden" name="addexam" value="check" />

</form>

beim klick auf den "bilder hinzufügen" - button soll sich die variable $bilderanzahl um so viel erhöhen, wie es in dem feld "bilderanzahl" angegeben wird. wegen mir kann aus dem button auch ein hyperlink werden.
wenn das formular über den submit-button abgeschickt wird gerät es in folgende prozedur:
		//Projekt hinzugefügt?
		if ( ( isset($_REQUEST['addexam']) ) && ( $_REQUEST['addexam'] == "check" ) )
		{
			if( isset( $_REQUEST["examname"] ) && $_REQUEST["examname"] == "" )
			{
				$errormsg		.=		"Name des Projekts angeben<br>";
				$page3			=		"addexam.inc.php";
			}
			
			if( isset( $_REQUEST["examdesc"] ) && $_REQUEST["examdesc"] == "" )
			{
				$errormsg		.=		"Beschreibung des Projekts angeben<br>";
				$page3			=		"addexam.inc.php";
			}

			if ( $errormsg == "" )
			{	
				$query		=		'INSERT INTO `projects_examples` (`examname`, `examdesc`, `category`) VALUES ( "';
				$query		.=		$_REQUEST["examname"] . '", "';
				$query		.=		$_REQUEST["examdesc"] . '", "';
				$query		.=		$catname . '" ); ';

				$result		=		mysql_query( $query );
		
				$msg		=		"Projekt wurde hinzugefügt";
				
			}
			
			$query		=		"SELECT * FROM projects_examples";
			$result		=		mysql_query( $query );
			$anzahl		=		mysql_num_rows( $result );

		}

die daten werden also an die datenbank übermittelt.

die aufgabe ist also per knopfdruck mehr dateifelder für bilder einzublenden ohne das formular bereits abzusenden.
wichtig ist, dass beim aktualisieren des formulars die variable $bilderanzahl verändert wird und auch die bereits erfolgten formulareingaben erhalten bleiben, was mein größtes problem ist, weil ohne das formular abzuschicken (submit) auch keine $_REQUEST[daten] zur verfügung stehen.

wäre cool, wenn ihr mir da helfen würdet. danke schon mal...felix

Dieser Beitrag wurde von felisse.courage bearbeitet: 06. Juni 2007 - 16:54

0

Anzeige



#2 Mitglied ist offline   askl 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 07. Juni 07
  • Reputation: 0

geschrieben 07. Juni 2007 - 06:19

Hallo Felix,

eine schlechte Variante ist über JavaScript - was immer kritisch ist, denn es kann ausgeschaltet sein. Besser siehe unten:

Beitrag anzeigenZitat (felisse.courage: 06.06.2007, 17:52)

die aufgabe ist also per knopfdruck mehr dateifelder für bilder einzublenden ohne das formular bereits abzusenden.
wichtig ist, dass beim aktualisieren des formulars die variable $bilderanzahl verändert wird und auch die bereits erfolgten formulareingaben erhalten bleiben, was mein größtes problem ist, weil ohne das formular abzuschicken (submit) auch keine $_REQUEST[daten] zur verfügung stehen.


Anmerkung am Rand - deine Annahme, dass das Formular nicht abgesendet werden kann ist nicht ganz korrekt -
es kann das Formular abgesendet werden (sofern es ein Affenformular ist und die entsprechenden Kontrollen integriert sind - siehe http://www.php-kurs....ung-mit-php.htm)

Gib dem Submit-Button der Bilder einen Namen (und/oder ID)
name="werteins" id="werteins"
Beim Anklicken des Buttons der Grafik wird dieser dann mit seinem value gesetzt und du kannst diesen Value abfragen - ist dieser gesetzt gibt es ein weiteres Feld für die Grafiken.

Durch das Affenformular kannst du so lange das Spiel treiben, wie nötig.

Ich hoffe, das war nicht zu knapp
cu askl
0

#3 Mitglied ist offline   felisse.courage 

  • Gruppe: aktive Mitglieder
  • Beiträge: 211
  • Beigetreten: 03. April 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Dresden
  • Interessen:grafik-/webdesign

geschrieben 07. Juni 2007 - 10:13

also ich verstehe es wirklich nicht ganz :ph34r:

mein formular hat insgesamt ein submit-button, logisch. die funktion mehr dateifelder zum upload anzuzeigen soll über den button (type=button) "bilder hinzufügen" geschehen.
wenn ich diesem button einen namen oder eine id gebe, kann ich diesen namen oder diese id nach einem klick auf den button auslesen, richtig?
das mag vielleicht sein, aber ich brauche ja den wert aus dem textfeld davor, die gewünschte bileranzahl.

so habe ich das jetzt verstanden, wobei du das sicher nicht so meinst. aber anders steig ich nicht dahinter.
0

#4 Mitglied ist offline   felisse.courage 

  • Gruppe: aktive Mitglieder
  • Beiträge: 211
  • Beigetreten: 03. April 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Dresden
  • Interessen:grafik-/webdesign

geschrieben 09. Juni 2007 - 16:05

ich habe es jetzt gerafft! ich bin davon ausgegangen, dass beim absenden eines formulars über einen submit-button alle formular-elemente übermittelt und entsprechende namen/werte erstellt werden. name/wert eines submit-buttons wird allerdings nur übermittelt, wenn dieser auch geklickt wird, d.h. man kann mehrere submit-buttons in ein formular setzen und es werden nur die daten des geklickten submit-buttons gesendet, was die unterscheidung welcher button nun geklickt wurde möglich macht und somit mein problem gelöst hat.

nur falls das noch einer wissen wollte. ich hoffe, dass das auch noch jemand versteht...

@askl: danke!!
0

Thema verteilen:


Seite 1 von 1

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