1Danke
ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
243
243
EMPFEHLEN
-
Hallo malwieder
Folgende Frage?
Ich habe einen Datenbank-Ausgabe mit einer While-Schleife. (Eine Art-DoTo-Liste)
Sieht so aus:
- Aufgabe 1
- ToDo
- ToDo
- ToDo
- Aufgabe 2
- ToDo
- ToDo
- ToDo
Hier werden die einzelnen Aufträge aus einer Datenbank gezogen, mit einer Schleife.
Und in jeder Ausgabe wird nochmal die DoTo-Liste über eine Schleife gezogen.
Soweit so gut, das hab ich ja schon alles, jetzt zu meiner Frage
Ich habe unter jeder ToDo-Liste einen HINZUFÜGEN BUTTON mit einem kleinen Eingabefeld eingefügt, und würde gerne, wenn ich auf hinzufügen drücke, haben das mir der eintrag direkt gemacht wird. Leider funktioniert das nur beim untersten Auftrag, was ja auch klar ist da das Script nach unten abgearbeitet wird und mir der letzte eintrag nur behalten wird.
Die Frage ist jetzt wie schreibe ich das Formular, so das mein HINZUFÜGEN BUTTON weis von wo der Eintrag kommt?
Schon klar ich gebe die ID mit, aber dadurch das es ja eine Schleife ist überschreibt er mir die Variablen solange bis ich beim letzten Auftrag bin. Die Lösung ist sicher mit Arrays verbunden leider hab ich keine Idee wie ich das angehen kann.
Kann mir da jemand einen Denkanstoss geben.
Mfg
Cid
- Aufgabe 1
-
10.12.11 12:18 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Du hast mehrere Möglichkeiten:
- Du baust pro Aufgabe ein Eingabefeld (unter den letzten Punkt unten drunter) und benennst ihn nach der Aufgaben-ID
- Du baust nur ein Eingabefeld unter alle Aufgaben, baust einen onclick-Event auf das UL, was deine Aufgabe repräsentiert; im onclick wird das Aufgaben-Feld entsprechend umbenannt oder ein hidden-Field mit einem Wert versorgt => Nachteil: JavaScript wird benötigt.
- Du baust mehrere Submit-Buttons, pro Aufgabe einen Button und wertest diese im PHP-Script aus.
Was ist dir lieber?Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
10.12.11 12:18 #3
Wenn man auf Hinzufügen klickt, dann taucht also ein Eingabefeld auf oder was. Füg da einfach noch eine ComboBox hinzu, die die Aufgaben darstellt, damit man sich die richtige Aufgabe auswählen kann. Und wenn man dann auf OK klickt (oder wie auch immer das bei dir ist), dann sollte das eigentlich an die richtige Stelle eingefügt werden.
Man sagt, das Schwert eines Samurai sei seine Seele ...
Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.
Das Schmieden ist eine Kunst; Das Schreiben auch ;)
-
Hallo und danke für die schnellen Antworten.
@Saftmeister:
Option 3 hab ich gemacht, aber wie kann ich das jetzt PHP auswerten, bzw. wie baue ich die Submit Buttons richtig auf, sodass die PHP auswertung auch weis was von wo kommt?
@ Akeshihiro:
Die Textbox ist immer sichtbar, man kann einen kleinen ToDo reinschreiben und auf OK drücken, fürs einfügen. Nach dem OK, soll sich die Seite neu aufbaun und natürlich der DoTo beim richtigen Auftrag erscheinen.
Mfg
Cid
-
10.12.11 12:47 #5
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Z.B. So:
Die Value des Submit-Buttons ist dann der Titel der Aufgabe
Code html:1 2 3 4 5
<form action.... method="post"> <input type="text" name="aufgabenschritt"/> <input type="submit" name="submit" value="Aufgabe 1"/> <input type="submit" name="submit" value="Aufgabe 2"/> </form>
Im PHP-Script dann:
Code php:1 2 3 4 5 6 7 8 9 10 11 12 13 14
// Daten aus dem POST-Form holen $aufgabenTitel = $_POST['submit']; $aufgabenSchrittNeu = $_POST['neuer_aufgabenschritt']; // TODO: Validieren und Filtern (Sanitizing) $sql = sprintf("SELECT id FROM aufgaben WHERE titel = '%s'", mysql_real_escape_string($aufgabenTitel); // ID mittels mysql_query und mysql_fetch_row/array/assoc/object abholen // Nun neuen Aufgabenschritt einfügen $insert = sprintf("INSERT INTO aufgaben_schritte (aufgaben_id, aufgabenschritt) VALUES (%d, '%s')", $aufgabenId, /* aus dem SELECT oben */ mysql_real_escape_string($aufgabenSchrittNeu) );
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Hallo nochmal
Ich habe folgendes Formular, immer eingebunden:
(Ist jetzt nicht original, hab das nur schnell runtergetippselt)
<input type="hidden" name="id" value="$id"> Hier wird die Auftrags ID gesendet
<input type="text" name="new_todo" value=""> Das eingabe Feld
<input type="submit" name="new" value="OK"> Der Button
Beim Button value="" möchte ich Ok, oder soetwas stehen haben, und nicht irgendeine Fortlaufende Zahl, deshalb kann ich deinen Vorschlag leider nicht umsetzten.
Weist du vielleicht eine Lösung, die ich hier einbauen kann?
Mfg
Cid
-
10.12.11 18:52 #7
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Du könntest Radio-Buttons einbinden:
Code php:1 2 3 4 5 6 7
while($row = mysql_fetch_array($result)) { $id = $row['id']; $auftrag = $row['auftrag']; ?> <input type="radio" name="auftrag_id" value="<?php echo $id;?>"/> <?php echo $auftrag;?><br/> <?php }
Dann kannst du im PHP-Script, was die Formular-Daten entgegennimmt, einfach $_POST['auftrag_id'] auswerten.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Moin,
du könntest auch dein Feld "new_todo" einfach als Array anlegen.
Hier ein Beispiel:
Listenausgabe:
Und die Verarbeitung:PHP-Code:echo "<ul>";
while($auftrag = mysql_fetch_assoc()) {
echo "<li>".$auftrag["text"]."</li>";
echo "<ul>";
$todo_result = mysql_query([...]); //hier deine Abfrage rein für jeweilige $auftrag["id"];
while($todo = mysql_fetch_assoc($todo_result)) {
echo "<li>".$todo["text"]."</li>";
}
echo "<li>"
echo "<input type=\"text\" name=\"newtodo[".$auftrag["id"]."]\" value="" />";
echo "<input type=\"submit\" name=\"send\" value=\"ToDo hinzufügen\" />";
echo "<li></ul>";
}
echo "</ul>";
Have funPHP-Code:foreach($POST["newtodo"] as $key => $value) {
//hier deine Verarbeitung
//$key ist deine Auftrags-ID
//$value dein neues Todo
}
-
Hallo wiedermal
@ TheBodo:
Danke für deinen Beitrag, genau an das hab ich gedacht, des wegen auch der Themenname
Leider bin ich mit Arrays zu schwach drauf. Deshalb bin ich nicht selbst gleich drauf gekommen.
Auf jedenfall hab ich das jetzt so gelöst und es funktioniert, sieht zwar ein wenig kompliziert aus aber was solls.
Wenn jemand einen Vorschlag hat wie es leichter geht, ich bin gerne für alles offen.PHP-Code:
if(isset($_POST["new_todo"]))
{
foreach($_POST["new_todo"] as $key => $value)
{
if($value != "")
{
$sql = "INSERT INTO project_todo ( project_id,
todo,
status)
VALUES ( '$key',
'$value',
'1')";
$result = mysql_query($sql) or die (mysql_error());
}
}
}

Mfg
Cid
Ähnliche Themen
-
Kontensalden für jeden einzelnen Kalendertag auswerten (Schleife)
Von fruchtschorle im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 20.02.09, 09:07 -
Problem: In einer While Schleife mehrere Formulare erzeugen und einzeln auswerten...
Von TS7 im Forum PHPAntworten: 4Letzter Beitrag: 23.03.08, 02:41 -
Array mittels Schleife belegen
Von Bunny1502 im Forum Flash PlattformAntworten: 4Letzter Beitrag: 12.09.06, 17:05 -
Formular auswerten
Von mgoertz im Forum PHPAntworten: 29Letzter Beitrag: 18.05.05, 09:46 -
Formular auswerten - wie?
Von sunshineworld im Forum PHPAntworten: 5Letzter Beitrag: 15.11.02, 15:07





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren