[nycphp-talk] Javascript "select all" feature?
Chris Bielanski
Cbielanski at inta.org
Tue Apr 13 17:44:32 EDT 2004
Errrgh I'm just going to stop posting code snippets until I test them (and
have time for all that) Obviously in my last example, moveElement.length in
the for() statement has to be replaced with some other value.
> -----Original Message-----
> From: Chris Bielanski [mailto:Cbielanski at inta.org]
> Sent: Tuesday, April 13, 2004 5:43 PM
> To: 'NYPHP Talk'
> Subject: RE: [nycphp-talk] Javascript "select all" feature?
>
>
> Oops, once again I provide an unclear example... what I meant
> is that move[]
> becomes move1, move2, move3,..moveN when you output to the
> browser, and the
> same upon receipt from the client. let me rearrange:
>
> <script>
> <!--
> function selectAll() {
> if (document.imageForm.select_all.checked) {
> for (i = 0; i < moveElement.length; i++) {
> var moveElement = eval("document.imageForm.move" + i);
> moveElement.checked = true;
> }
> document.imageForm.deselect_all.checked = false;
> }
> }
> </script>
>
> See how that treats you...
>
> ~C
>
> > -----Original Message-----
> > From: Phillip Powell [mailto:phillip.powell at adnet-sys.com]
> > Sent: Tuesday, April 13, 2004 5:39 PM
> > To: NYPHP Talk
> > Subject: Re: [nycphp-talk] Javascript "select all" feature?
> >
> >
> > Following are all of the variations I tried using Javascript:
> > [Quote]
> > <script>
> > <!--
> > function selectAll() {
> > if (document.imageForm.select_all.checked) {
> > var moveElement = eval("document.imageForm.move" + i);
> > for (i = 0; i < moveElement.length; i++) {
> > moveElement[i].checked = true;
> > }
> > document.imageForm.deselect_all.checked = false;
> > }
> > }
> > </script>
> >
> > <script>
> > <!--
> > function selectAll() {
> > if (document.imageForm.select_all.checked) {
> > var moveElement = eval("document.imageForm.move\[" + i + "\]");
> > for (i = 0; i < moveElement.length; i++) {
> > moveElement[i].checked = true;
> > }
> > document.imageForm.deselect_all.checked = false;
> > }
> > }
> > </script>
> >
> > <script>
> > <!--
> > function selectAll() {
> > if (document.imageForm.select_all.checked) {
> > var moveElement = eval("document.imageForm.move\[\]");
> > for (i = 0; i < moveElement.length; i++) {
> > moveElement[i].checked = true;
> > }
> > document.imageForm.deselect_all.checked = false;
> > }
> > }
> > </script>
> >
> > <script>
> > <!--
> > function selectAll() {
> > if (document.imageForm.select_all.checked) {
> > var moveElement = eval("document.imageForm.move\[\]");
> > alert(moveElement);
> > for (i = 0; i < moveElement.length; i++) {
> > moveElement[i].checked = true;
> > }
> > document.imageForm.deselect_all.checked = false;
> > }
> > }
> > </script>
> > [/Quote]
> >
> > Every single one of these failed. The alert() didn't even
> show up.
> > Failed in all browsers including Mozilla.
> >
> > The following *works*.. but only in Mozilla and not in IE,
> Opera nor
> > Konqueror:
> >
> > [Quote]
> > <script>
> > <!--
> > function selectAll() {
> > if (document.imageForm.select_all.checked) {
> > var moveElement = eval("document.imageForm.elements['move[]']");
> > alert(moveElement);
> > for (i = 0; i < moveElement.length; i++) {
> > moveElement[i].checked = true;
> > }
> > document.imageForm.deselect_all.checked = false;
> > }
> > }
> > </script>
> > [/Quote]
> >
> > I'm beginning to believe that the PHP array form element
> > construct works
> > only in Mozilla because it's non-M$.
> >
> > Phil
> >
> > Chris Bielanski wrote:
> >
> > >If that didn't work, then I think the next step on the road
> > to salvation
> > >lies in the precipitous use of the eval() function within
> a for loop:
> > >for(var i; i < something; i++)
> > >{
> > > var obj = eval('document.forms[0].move'+i);
> > > // etc etc...
> > >}
> > >
> > >This is an evil slimy hack but so long as you're in control
> > of the form
> > >variables, it will take the tedium out of catching each
> form element.
> > >
> > >~C
> > >
> > >
> > >>-----Original Message-----
> > >>From: Phillip Powell [mailto:phillip.powell at adnet-sys.com]
> > >>Sent: Tuesday, April 13, 2004 5:19 PM
> > >>To: NYPHP Talk
> > >>Subject: Re: [nycphp-talk] Javascript "select all" feature?
> > >>
> > >>
> > >>Your code implementations work! In Mozilla only.. :(
> Fails in IE,
> > >>Opera and Konqueror.. :(
> > >>
> > >>Apparently IE, Opera and Konqueror look for a form element
> > name to be
> > >>alphanumeric construct only (e.g. "move", "move0", "move_move",
> > >>"move-move"), but not "move[]", whereas Mozilla (and I
> > >>believe Netscape
> > >>but can't test that to know) are more forgiving of "move[]"..
> > >>
> > >>I've tried numerous script examples and they all work in
> > Mozilla and
> > >>fail in IE the moment I use "move[]" instead of "move".
> > >>
> > >>Phil
> > >>
> > >>
> > >>
> > >><script>
> > >><!--
> > >> function selectAll(formElementName) {
> > >> if (document.imageForm.select_all.checked) {
> > >> for (i = 0; i < document.imageForm.length; i++) {
> > >> if (document.imageForm.elements[i].type == 'checkbox' &&
> > >>document.imageForm.elements[i].name == formElementName) {
> > >> document.imageForm.elements[i].checked = true;
> > >> }
> > >> }
> > >> document.imageForm.deselect_all.checked = false;
> > >> }
> > >> }
> > >>
> > >> function deSelectAll(formElementName) {
> > >> if (!document.imageForm.select_all.checked ||
> > >>document.imageForm.deselect_all.checked) {
> > >> for (i = 0; i < document.imageForm.length; i++) {
> > >> if (document.imageForm.elements[i].type == 'checkbox' &&
> > >>document.imageForm.elements[i].name == formElementName) {
> > >> document.imageForm.elements[i].checked = false;
> > >> }
> > >> }
> > >> document.imageForm.select_all.checked = false;
> > >> }
> > >> }
> > >>//-->
> > >></script>
> > >>
> > >>
> > >>
> > >>Wellington Fan wrote:
> > >>
> > >>
> > >>
> > >>>Try this:
> > >>>
> > >>>
> > >>><script>
> > >>><!--
> > >>> function selectAll(f,n,v) {
> > >>> var chk = ( v == null ? true : v );
> > >>> for (i = 0; i < f.elements.length; i++) {
> > >>> if( f.elements[i].type == 'checkbox' &&
> > >>>f.elements[i].name == n ) {
> > >>> f.elements[i].checked = chk;
> > >>> }
> > >>> }
> > >>> }
> > >>>//-->
> > >>></script>
> > >>>
> > >>><form>
> > >>><input type="text" name="move[]"><br>
> > >>><input type="checkbox" name="move[]"><br>
> > >>><input type="checkbox" name="move[]"><br>
> > >>><input type="checkbox" name="move[]"><br>
> > >>><input type="checkbox" name="move[]"><br>
> > >>><input type="radio" name="move[]"><br>
> > >>><input type="checkbox" name="select[]"><br>
> > >>><input type="checkbox" name="select[]"><br>
> > >>><input type="checkbox" name="select[]"><br>
> > >>><input type="checkbox" name="select[]"><br>
> > >>><input type="button" onClick="selectAll(this.form,'move[]')"
> > >>>
> > >>>
> > >>name="butt"
> > >>
> > >>
> > >>>value="check em">
> > >>><input type="button"
> onClick="selectAll(this.form,'move[]',false)"
> > >>>name="butt" value="clear em">
> > >>></form>
> > >>>
> > >>>
> > >>>So selectAll(this.form,'move[]',false) can take 2 or 3 args:
> > >>>
> > >>>1. - reference to the form
> > >>>2. - the 'name' of the checkboxes to be set/cleared
> > >>>3. - <optional, default is true> false to clear the checkboxes
> > >>>
> > >>>--
> > >>>Wellington
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>-----Original Message-----
> > >>>>From: talk-bounces at lists.nyphp.org
> > >>>>[mailto:talk-bounces at lists.nyphp.org] On Behalf Of
> Phillip Powell
> > >>>>Sent: Tuesday, April 13, 2004 4:04 PM
> > >>>>To: NYPHP Talk
> > >>>>Subject: Re: [nycphp-talk] Javascript "select all" feature?
> > >>>>
> > >>>>
> > >>>>What about the other checkboxes, "select_all" and
> > >>>>"deselect_all", along
> > >>>>with other dynamically-generated checkbox groups that may
> > >>>>
> > >>>>
> > >>also exist
> > >>
> > >>
> > >>>>within this HTML resultset?
> > >>>>
> > >>>>Phil
> > >>>>
> > >>>>felix zaslavskiy wrote:
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>Try this:
> > >>>>>for (var i = 0; i < document.imageForm.elements.length; i++){
> > >>>>>if(document.imageForm.elements[i].type == 'checkbox'){
> > >>>>> document.imageForm.elements[i].checked = true;
> > >>>>>}
> > >>>>>}
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>I am producing a form using PHP on the back end and
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>Javascript on the
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>>front end. The resulting script will come to the browser
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>as follows:
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>>[Code]
> > >>>>>><script>
> > >>>>>><!--
> > >>>>>>function selectAll() {
> > >>>>>> moveElement = eval("document.imageForm.move" + "[]");
> > >>>>>> alert(moveElement);
> > >>>>>> if (document.imageForm.select_all[0].checked) {
> > >>>>>> for (i = 0; i < document.imageForm.move.length; i++) {
> > >>>>>> document.imageForm.move[i].checked = true;
> > >>>>>> }
> > >>>>>>}
> > >>>>>>}
> > >>>>>>
> > >>>>>>function deSelectAll() {
> > >>>>>>if (!document.imageForm.select_all[0].checked ||
> > >>>>>>document.imageForm.deselect_all[0].checked) {
> > >>>>>> for (i = 0; i < document.imageForm.move.length; i++) {
> > >>>>>> document.imageForm.move[i].checked = false;
> > >>>>>> }
> > >>>>>>}
> > >>>>>>}
> > >>>>>>//-->
> > >>>>>></script>
> > >>>>>>[/Code]
> > >>>>>>
> > >>>>>>This will work with a checkbox group that has to have
> > this naming
> > >>>>>>convention for PHP:
> > >>>>>>
> > >>>>>>[Code]
> > >>>>>><input type=checkbox name=move[] value="myImage.gif"> -
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>Move? [/Code]
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>>I will also have a checkbox that will "select all" and
> > "de-select
> > >>>>>>all":
> > >>>>>>
> > >>>>>>[Code]
> > >>>>>><input type=checkbox name=select_all value=1
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>onChange="selectAll()"> -
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>>Select All <input type=checkbox name=deselect_all value=1
> > >>>>>>onChange="deSelectAll()">
> > >>>>>>- De-select All
> > >>>>>>[/Code]
> > >>>>>>
> > >>>>>>I am not familiar at how Javascript can work with
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>non-standard naming
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>>conventions for event actions, can someone tell me what
> > I'm doing
> > >>>>>>wrong? This fails at least in Mozilla 1.6
> > >>>>>>
> > >>>>>>Thanx
> > >>>>>>Phil
> > >>>>>>
> > >>>>>>_______________________________________________
> > >>>>>>talk mailing list
> > >>>>>>talk at lists.nyphp.org
> > http://lists.nyphp.org/mailman/listinfo/talk
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>_______________________________________________
> > >>>>talk mailing list
> > >>>>talk at lists.nyphp.org
> http://lists.nyphp.org/mailman/listinfo/talk
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>_______________________________________________
> > >>>talk mailing list
> > >>>talk at lists.nyphp.org
> > >>>http://lists.nyphp.org/mailman/listinfo/talk
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>_______________________________________________
> > >>talk mailing list
> > >>talk at lists.nyphp.org
> > >>http://lists.nyphp.org/mailman/listinfo/talk
> > >>
> > >>
> > >>
> > >_______________________________________________
> > >talk mailing list
> > >talk at lists.nyphp.org
> > >http://lists.nyphp.org/mailman/listinfo/talk
> > >
> > >
> > >
> >
> >
> > _______________________________________________
> > talk mailing list
> > talk at lists.nyphp.org
> > http://lists.nyphp.org/mailman/listinfo/talk
> >
> _______________________________________________
> talk mailing list
> talk at lists.nyphp.org
> http://lists.nyphp.org/mailman/listinfo/talk
>
More information about the talk
mailing list