Zum Inhalt springen

php wert von radio buttons auslesen


Empfohlene Beiträge

hi, habe folgenden vereinfachten code:


$flag = 0;
while(pg_fetch_row($QueryResult))
{
if($_POST[pg_result($QueryResult, "fragenr")] == '')
{
$flag = 1;
}
else
{
$SQLQuery2 = "UPDATE table SET field=".$_POST[pg_result($QueryResult,"fragenr")];
pg_exec($ConID, $SQLQuery2);
}
}
[/PHP]

ich hab ne while schleife, die mir die daten per sql aus meiner db(postgres) ausliest.

ich habe einen webbasierten fragebogen. wenn dieser ausgefüllt wird, dann wird in der if abfrage kontrolliert, ob fragen leer sind. also nicht ausgefüllt.

ist dies der fall, setzt er das flag auf 1.

sonst füllt er die werte in meine db.

wenn der user seinen fragebogen das nächste mal anschaut, dann bekommt er nur noch die fragen zu sehen, die er zuvor nicht ausgefüllt hat.

soweit funktioniert das auch.

warum hat er aber beim zweiten durchlauf(wenn der kunden seinen bogen erneut aufruft) in der if-abfrage keine werte.

also $_POST[pg_result($QueryResult, "fragenr")] == ''.

anschliessend füllt er aber beim update die richtigen werte in die db?

kann mir jmd helfen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

HiHo!

1.) Sieht verdächtig nach den berühmt-berüchtigten Kundenzufriedenheitsbögen aus...kann das sein? :D

2.) Ähm......irgendwie ist noch nicht 100%ig klar, wo genau das Problem liegt.

Du willst also den Fragebogen, wenn der Kunde den ein zweites Mal aufruft nur noch mit den Fragen anzeigen, die der Kunde noch nicht beantwortet hat - sehe ich das richtig?

Und wenn der Kunde dann den Bogen zum zweiten mal abschickt, ist nix mehr in der Post-Global drin?

Oder ist einach nur an der Stelle, die du gerade abfragst (der aktuelle PG-Datensatz) leer?

Gruß,

DSW

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi DSW,

1.) richtig, es sind die berühmt berüchtigten kundenzufriedenheitsbögen.:marine

2.)

Du willst also den Fragebogen, wenn der Kunde den ein zweites Mal aufruft nur noch mit den Fragen anzeigen, die der Kunde noch nicht beantwortet hat - sehe ich das richtig?

das siehst du richtig, das funktioniert aber auch bereits.

so an dieser stelle, behauptet er, dass folgendes ergebnis leer sei:

if($_POST[pg_result($QueryResult,"fragenr") =='')

aber an dieser stelle füllt er es in die db ein. mit den richtigen werten. also ist das teil doch nicht leer, oder?

$SQLQuery2="UPDATE table SET field=".$_POST[pg_result($QueryResult,"fragenr")];

ist es jetzt besser verständlich?

mfg korea1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi!

Ähm...kann es vielleicht sein, daß die Daten erst im nächsten Durchlauf der While-Schleife eingetragen werden?

Weil er kann definitiv nicht sagen, das der Inhalt == '' ist und gleichzeitig die Daten in die DB schreiben - dafür ist der Aufruf ja im Else-Zweig.

Oder wo genau liegt das Problem sonst?

Gruß,

DSW

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

wie meinst du dass?

aber irgendwie kann das doch nicht sein, nehmen wir an, er bekommt 12 fragen und füllt davon nur 10 aus.

dann wird er beim absenden auf einen bildschirm geleitet, der ihm die möglichkeit gibt die restlichen fragen noch auszufüllen.

somit bekommt er jetzt noch 2 fragen präsentiert.

wenn er bei beiden fragen einen wert einträgt, dann hat er keine leeren felder mehr,od?

das konstrukt wird doch so durchlaufen, dass er für jede einzelne frage schaut, ob sie einen wert hat oder nicht.

wert nein => flag = 1

wert ja => eintrag in db

oder hab ich da nen groben denkfehler drin?

danke korea1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by korea1

hi,

wie meinst du dass?

aber irgendwie kann das doch nicht sein, nehmen wir an, er bekommt 12 fragen und füllt davon nur 10 aus.

dann wird er beim absenden auf einen bildschirm geleitet, der ihm die möglichkeit gibt die restlichen fragen noch auszufüllen.

somit bekommt er jetzt noch 2 fragen präsentiert.

wenn er bei beiden fragen einen wert einträgt, dann hat er keine leeren felder mehr,od?

das konstrukt wird doch so durchlaufen, dass er für jede einzelne frage schaut, ob sie einen wert hat oder nicht.

wert nein => flag = 1

wert ja => eintrag in db

oder hab ich da nen groben denkfehler drin?

danke korea1

Im zweiten Durchlauf hast du vermutlich immernoch den gesamten Fragensatz im ResultSet, oder? Aber als Antworten in $_POST hast du nur noch meinetwegen die zwei Unbeantworteten - somit hast du "alle Felder leer" (die Felder existieren praktisch überhaupt nicht), bis auf die zwei, die der Kunde im zweiten Step ausfüllen musste.

Könnte das so hinkommen?

greetings,

DSW

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmmm...warum habe ich nur mit dieser Antwort gerechnet? *g*

Also, als mögliche Abhilfen für das Problem fallen mir spontan zwei Möglichkeiten ein:

Erstens:

Entweder alle schon ausgefüllten Felder als Hidden-Fields übergeben - somit hast du die $_POST-Variable dann auch wieder komplett voll - ist allerdings nicht wirklich effizient (und elegant erst recht nicht).

Zweitens:

Das ResultSet mit den möglichen Fragen verkleinern. Das halte ich für die elegantere Lösung. Und zwar würde ich hierfür JEDESMAL die möglichen Fragen mit den bereits gegebenen Antworten joinen und dann nur die Fragen ausgeben, bei denen noch keine Antwort drin steht.

greetings,

DSW

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...