Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) begrenzung, checkbox, javascript (edit)
 
Reply to this topicStart new topicStart Poll
> Java Script Formular, Checkboxen begrenzen
TD Andi
TradeDoubler Schweiz
Geschrieben am: Sa 30.12.2006, 14:26
Report PostQuote Post

AyomRank 6
Group Icon

Gruppe: Moderatoren
Beiträge: 542
Mitglied seit: 11.04.2006


Salve Forum

Habe folgendes Problem:

Wie schaff ich es eine Gruppe von Checkboxen auf maximal 2 "checked" zu begrenzen?
Wird ein dritter angeklickt, soll der erste wieder deaktiviert werden.


Konkretes Problem:

User sollen sich in einem Webkatalog bei maximal 2 Kategorien anmelden können. Diese Kategorien kann der User via seinem Account anpassen bzw. ändern. Wir wollen aber nicht, dass ein user sich bei allen kategorien einträgt, sondern eben nur bei 2.



Tnx&Gruss,
andi



--------------------
TradeDoubler (Schweiz) AG
Interessiert an CPC/CPM Kampagnen? 044 560 90 30

Reply.ch - Online Marketing Schweiz

TradeDoubler Schweiz

Xing Profil
Top
PMEmail PosterUsers Website
Top
 
 
Sascha Ahlers
#2 Geschrieben am: Sa 30.12.2006, 15:16 (+00:50)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


Sowas solltet Ihr besser serverseitig lösen, denn JavaScript kann man einfach abschalten und eine Überprüfung ist nicht mehr möglich.


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
TD Andi
TradeDoubler Schweiz
#3 Geschrieben am: Sa 30.12.2006, 16:41 (+01:24)
Report PostQuote Post

AyomRank 6
Group Icon

Gruppe: Moderatoren
Beiträge: 542
Mitglied seit: 11.04.2006


Danke Sascha,

Stimmt. JS kann ausgeschalten werden. Unser Progr weiss aber nicht, wie das Ganze serverseitig zu lösen ist.

Wir bräuchten also immer noch eine Java Script Lösung...

Anyone?



--------------------
TradeDoubler (Schweiz) AG
Interessiert an CPC/CPM Kampagnen? 044 560 90 30

Reply.ch - Online Marketing Schweiz

TradeDoubler Schweiz

Xing Profil
Top
PMEmail PosterUsers Website
Top
 
Patrick Z
#4 Geschrieben am: Sa 30.12.2006, 17:11 (+00:29)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 523
Mitglied seit: 14.04.2004


QUOTE
Unser Progr weiss aber nicht, wie das Ganze serverseitig zu lösen ist.


Dann rolleyes.gif würde ich einen anderen Programmierer nehmen.
Aber das darf nicht das Problem sein!
Der Satz klingt unangenehm, aber das ist meine Meinung. Ich will den Programmierer nicht als dumm darstellen.




QUOTE
Wir bräuchten also immer noch eine Java Script Lösung...

Das Problem ist wie Sascha schon sagte, dass jeder JavaScript ausschalten kann.
Oder man editiert die Datei - löscht alle JavaScript-Befehle heraus, öffnet dann die Datei und schicht dann das Formular ab.

JavaScript kann nicht 100%ig sicherstellen, ob nur zwei Kategorien ausgewählt worden sind.

Wenn du sicher gehen willst, dass man sich nur in zwei Kategorien einträgt, dann muss du dies per PHP, Perl oder sonst wie serverseitig kontrollieren.
Top
PMEmail PosterICQ
Top
 
Sascha Ahlers
#5 Geschrieben am: Sa 30.12.2006, 17:17 (+00:06)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


QUOTE (Andi Nigg @ Sa 30.12.2006, 17:41)
[...] Unser Progr weiss aber nicht, wie das Ganze serverseitig zu lösen ist. [...]

Wieso weiß er das nicht blink.gif, serverseitig ist es vermutlich sogar leichter zu lösen als mit JavaScript.




HTML
<input type="checkbox" name="my_checkbox_array[]" value="cat_1" /> Webdesign
<input type="checkbox" name="my_checkbox_array[]" value="cat_2" /> Programmierung
<input type="checkbox" name="my_checkbox_array[]" value="cat_3" /> Chat


PHP:
CODE
[...]
if ( count($_POST['my_checkbox_array']) > 2 ) {
  error_msg('Sie dürfen sich maximal in 2 Kategorien eintragen');
}
[...]




JavaScript (vermutlich, verausgesetzt das length wird nicht anderes interpretiert als vermutet; nicht getestet):
CODE

function check_form () {
  if ( document.forms.formname.my_checkbox_array.length > 2 ) {
     alert("Sie dürfen sich maximal in 2 Kategorien eintragen");
  }
}

oder
CODE

function check_form () {
  if ( document.getElementById("formid").my_checkbox_array.length > 2 ) {
     alert("Sie dürfen sich maximal in 2 Kategorien eintragen");
  }
}

Wenn das nicht klappt könnte es ggf. wesendlich komplizierter werden


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
TD Andi
TradeDoubler Schweiz
#6 Geschrieben am: Sa 30.12.2006, 17:27 (+00:10)
Report PostQuote Post

AyomRank 6
Group Icon

Gruppe: Moderatoren
Beiträge: 542
Mitglied seit: 11.04.2006


Hallo Patrick

Tnx for your feedback. Ich bin eigentlich sehr zufrieden mit unserem Progr. Er beherrscht CF wie seine Westentasche und ganz besonders schätz ich, dass er jeweils mitdenkt. Also nicht nur coden und gut ist, sondern er überlegt sich, wo es Komplikationen geben könnte und stellt sich dementsprechend darauf ein.

Und es ist ja so, dass wir v.A. am Anfang den Webkatalog (der eigentlich nur einen Teil des Projektes ausmacht) überwachen werden. Und falls jemand JS auschaltet und sich dann bei mehreren Kategorien einträgt, dann ist derjenige ziemlich schnell weg vom Fenster....bzw. von der Seite.

@ Sascha: Vielen, vielen Dank. Du bist echt super. Ich hoffe mal das wird ihm reichen.


Schönen Abend allerseits,
Gruss,
andi


--------------------
TradeDoubler (Schweiz) AG
Interessiert an CPC/CPM Kampagnen? 044 560 90 30

Reply.ch - Online Marketing Schweiz

TradeDoubler Schweiz

Xing Profil
Top
PMEmail PosterUsers Website
Top
 
Patrick Z
#7 Geschrieben am: Sa 30.12.2006, 17:36 (+00:09)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 523
Mitglied seit: 14.04.2004


my_checkbox_array[] hat mich gestört. Dann müsste die Variable $_POST['my_checkbox_array[]'] heißen. unsure.gif


Formular
CODE
<form action="ziel.php" method="post">
<input type="checkbox" name="kategorie" value="kategorie_1" /> Webdesign
<input type="checkbox" name="kategorie" value="kategorie_2" /> Programmierung
<input type="checkbox" name="kategorie" value="kategorie_3" /> Chat
<input name="submit" type="submit" />
</form>



PHP-Datei - hier ziel.php
CODE
<?php


if ( count($_POST['kategorie']) > 2) {
 echo 'Sie dürfen sich maximal in 2 Kategorien eintragen<br />Zurück zum <a href="DateinameEinfügen">Formular</a>.';
} else {
//ok und weiter

}

?>
Top
PMEmail PosterICQ
Top
 
Severin Fink
#8 Geschrieben am: Sa 30.12.2006, 17:48 (+00:11)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 93
Mitglied seit: 5.06.2006


QUOTE (Sascha Ahlers @ Sa 30.12.2006, 15:16)
Sowas solltet Ihr besser serverseitig lösen, denn JavaScript kann man einfach abschalten und eine Überprüfung ist nicht mehr möglich.

Natürlich kann JS ausgeschalten werden, aber es ist doch einfach für den User komfortabler, dass auch nur die Checkboxen ausgewählt sind, die auch später gewertet werden.
Also wäre so eine Überprüfen serverseitig und eine automatisch Änderung auf 2 Checkboxen per Javascript das Beste.

mfg Severin Fink
Top
PMEmail PosterICQMSN
Top
 
Sascha Ahlers
#9 Geschrieben am: Sa 30.12.2006, 18:51 (+01:03)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


QUOTE (Patrick Zorn @ Sa 30.12.2006, 18:36)
my_checkbox_array[] hat mich gestört. Dann müsste die Variable $_POST['my_checkbox_array[]'] heißen. unsure.gif [...]

Nein, das ist schon richtig so.
$_POST['my_checkbox_array'] muss dann ein Array sein, welches die einzelnen ausgewählten Felder mit dem Value-Wert enthält.

So wie Du es aufgeschrieben hast, wird er wohl nur eines der Felder zurückgeben (vermutlich das letzte Ausgewählte in der Reihenfolge), und $_POST['my_check_array'] ist dann kein Array, sondern ein String.



MfG Sascha Ahlers


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#10 Geschrieben am: Sa 30.12.2006, 19:30 (+00:38)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2204
Mitglied seit: 4.02.2006


Man muß dieses Problem zwingend serverseitig behandeln, da es ansonsten problemlos ausgehebelt werden kann und inkonsistente DB-Einträge erzeugt. Ein Programmierer sollte das eigentlich problemlos ohne Hilfestellung schaffen, das ist ja eine ganz normale Formularbehandlung.

Man kann bzw. sollte das aber auch zusätzlich clientseitig behandeln, weil das einfach benutzerfreundlicher ist - außerdem ist das ein nettes Spielzeug.

Irgendwann hatte ich mir mal so etwas gebaut, es ist nix aufregendes - Nimm zwei von fünf.

Geht sicher auch eleganter, mir ist damals nix dümmeres eingefallen, bei den Alerts kann man die Kommentare zur Kontrolle rausnehmen, um den Ablauf zu sehen. Allerdings muß man eine parallele interne Liste pflegen, um zu wissen, was als erstes angehakt wurde - damit das zuerst angehakte Feld beim Überschreiten der Grenze auch zuerst wieder ausgehakt wird.


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten: Web-Datenbanken als Online - CRM - Lösung.
Konzentrieren Sie sich auf Ihr Kerngeschäft - nutzen Sie eine schlanke, schnelle Online-Datenbank von verschiedenen Standorten.
Top
PMEmail PosterUsers Website
Top
 
Patrick Z
#11 Geschrieben am: Sa 30.12.2006, 20:10 (+00:40)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 523
Mitglied seit: 14.04.2004


Danke Sascha für den Hinweis. Arbeite doch selten mit Arrays. rolleyes.gif
Top
PMEmail PosterICQ
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/15791

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Online-Editor gesucht [script] TSc 72 5 Fr 5.09.2008, 09:39
Verkaufe 1x Script inkl. Resellerlizenz etc.! japsa 103 0 Mo 1.09.2008, 09:48
Suche Affiliate Script decision 143 2 Sa 30.08.2008, 10:10
Wikipedia Parser PHP Script Big Rob 128 3 Do 28.08.2008, 21:02
Wertübergabe an Formular easymoments 119 7 Di 26.08.2008, 19:09
Fotoalbum Script Siegfried_D 227 5 So 24.08.2008, 21:22
Tabelle komplett anklickbar, aber Formular nicht? BartTheDevil89 117 3 Di 19.08.2008, 16:40
Security: Gif-Bild plus Java-Klasse im Profil jAuer 155 6 Sa 2.08.2008, 19:21
Socialnetwork Script abzugeben, Marlida Dachs 242 0 Mi 16.07.2008, 19:39
cgi formular rosinenbomber-jk 178 14 So 13.07.2008, 18:42




Anzeige - [Interessiert an einer Anzeige?]



Anzeigen


[Interessiert an einer Anzeige?]