Hello,

I uploaded the updated version:
http://www.27lamps.com/Beta/List/List.html#remove

There is only two problems:
1. The value of the select is not being added.
2. If i have multiple chekboxes on the same group I would like to add
only the values of ones selected.

The ideal would be to have the following format:

Name. Country. 1st CheckBox selected, 2st CheckBox selected, ...

This way I can understand that each dot separates an input and a comma
separates the selected values of a check box group.

How can I do this?

Thanks,
Miguel


On Oct 22, 2:45 am, shapper <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I will try it. Sorry, but I am no expert with JQuery and I am just
> trying to pull this off.
>
> I understand that a plugin should have many more options but my
> intention is to have this plugin so I can use across my projects and
> with time improve it.
> It would be easier to make this without being a plugin? I am not
> really sure how the code would change ...
>
> I was looking for such a plugin but I wasn't able to find any ... I
> think this is really useful.
>
> Just select the inputs, the button, the list and the format as the
> inputs values would be displayed. Then use something like:
> <li>Book Type. Book Name. Values of selected CheckBoxes separated by
> commas<input type="hidden" name="myList" value="Book Type. Book Name.
> Values of selected CheckBoxes separated by commas" /><a
> href="#remove"class="remove">Remove Item</a></li>
>
> Then I use the hidden inputs to read the info on the server after the
> form is submitted, parse the info and insert it into the database
> along with the other form info.
>
> Does this makes any sense?
>
> Yes, I could use Ajax but the form has a lot more information and
> these list info should be only saved into the database if the user
> submits the register form itself.
> So if i send this info through ajax there will no where to save it
> since the user didn't register yet.
>
> Is this what you meant?
>
> Thank You,
> Miguel
>
> On Oct 22, 1:45 am, ricardobeat <[EMAIL PROTECTED]> wrote:
>
> > Install the Firebug extension for Firefox so you can debug your code
> > easily:www.getfirebug.com
>
> > I don't mean it's not good for a plug-in, I mean it's a very specific
> > behaviour. To be useful to a large number of people it would need to
> > be very flexible and customizable.
>
> > On your test page, you forgot to close the function and you're not
> > using it the right way. As it is you should have used:
>
> > $('form').createList('#MyList') // form is the form from where you are
> > getting the values, you pass createList() the list ID
>
> > I changed it to act from the elements themselves, here is a new one:
>
> > $(document).ready(function() {
>
> >   $.fn.createList = function(opt){
> >     var origin = this.eq(0).parents('form');
> >     var $fields = this;
> >       $(opt.button,origin).bind('click',function(){
> >          str = [];
> >          $fields.each(function(){
> >            str.push($(this).val());
> >          });
> >          str = str.join(',');
> >          $('<li></li>').appendTo(opt.list).append(str).append(' <a
> > href="#remove" class="remove">Remove Item</a>');
> >        return false;
> >   });
> >  }
>
> > });
>
> > The way you use this is the following:
>
> > $('input.name,input.country,input.newsletter').createList({ list:
> > '#MyList', button: 'input.sendToList' })
>
> > First you select the form inputs that you want to get the values from,
> > then you call createList and pass an object specifying a selector for
> > the list and for the button you want to use, they can be any selector
> > (ID,class,etc). The code is quite self-explanatory.
>
> > You could also send this data directly to the server via Ajax, there
> > is no need to put it in a list just for that.
>
> > cheers,
> > Ricardo
>
> > On Oct 21, 9:07 pm, shapper <[EMAIL PROTECTED]> wrote:
>
> > > Hi,
>
> > > I tried to follow your tips but I might be doing something 
> > > wrong:http://www.27lamps.com/Beta/List/List.html
>
> > > A few questions:
> > > 1. Why isn't this good for a plugin?
> > >     I fell this is really useful in forms for selecting multiple
> > > items, add them to the a list and then read that list from server
> > > side.
>
> > > 2. Can't I specify the ID's of the form inputs I want to take the info
> > > from?
> > >     My form has 10 inputs and 2 buttons: One should submit the form.
> > > The other should only add the contents of the 3 selected inputs to the
> > > list.
>
> > > Thank You,
> > > Miguel
>
> > > On Oct 16, 9:47 pm, ricardobeat <[EMAIL PROTECTED]> wrote:
>
> > > > This is quite specific to made into an actual plug-in, but here it
> > > > goes:
>
> > > > $.fn.createList = function(list){
> > > >         var origin = this;
> > > >    $(':submit',origin).bind('click',function(){
> > > >                 str = [];
> > > >                 console.log($('input,select,checkbox:checked',origin));
> > > >                 
> > > > $('.name,.country,.newsletter:checked',origin).each(function(){
> > > >                                 str.push($(this).val());
> > > >                 });
> > > >                 str = str.join(',');
> > > >                 $('<li></li>').appendTo(list).append(str).append(' <a 
> > > > href="#remove"
> > > > class="remove">Remove Item</a>');
> > > >                 return false;
> > > >         });
>
> > > > };
>
> > > > <form>
> > > >   <input class="name"/>
> > > >   <select class="country">
> > > >     <option value="France">France</option>
> > > >     <option value="Portugal">Portugal</option>
> > > >     <option value="UK">UK</option>
> > > >     <option value="US">US</option>
> > > >   </select>
> > > >   <input type="checkbox" value="Newsletter" class="newsletter"
> > > > name="newsletter"/>
> > > >   <input type="submit" value="Add to List"/>
> > > > </form>
>
> > > > 1. you were binding the 'remove buttons' everytime you ran the
> > > > function, keep the livequery call outside the function so it only runs
> > > > once
> > > > 2. your HTML was missing IDs, I made them into classes so you don't
> > > > need to pass IDs everytime
> > > > 3. 'this' inside your appendTo() was refering to the button, not the
> > > > form
>
> > > > only tested on FF3, works alright.
>
> > > > - ricardo
>
> > > > On Oct 16, 8:39 am, shapper <[EMAIL PROTECTED]> wrote:
>
> > > > > Hi,
>
> > > > > I added a live example to:http://www.27lamps.com/Beta/List/List.html
>
> > > > > It is not working. Could someone, please, help me with this?
>
> > > > > I am trying to create something similar to what is used in wordpress
> > > > > to add tags to a post but getting the values from multiple form
> > > > > inputs.
>
> > > > > Thanks,
> > > > > Miguel
>
> > > > > On Oct 16, 5:58 am, ricardobeat <[EMAIL PROTECTED]> wrote:
>
> > > > > > If the ids are supplied in '#id,#otherid,#otherid' format, you could
> > > > > > do:
>
> > > > > > var str = new String;
> > > > > > $(options.formids).each(function(){
> > > > > >     str += $(this).val();
> > > > > >     str += ',';});
>
> > > > > > $('<li/>').appendTo(options.listid).text(str);
>
> > > > > > - ricardo
>
> > > > > > On Oct 15, 9:49 pm, shapper <[EMAIL PROTECTED]> wrote:
>
> > > > > > > Hello,
>
> > > > > > > I am trying to create my first JQuery plugin that does the 
> > > > > > > following:
>
> > > > > > > On a form, when a button is pressed, a few form elements values 
> > > > > > > are
> > > > > > > used to create a string (CSV format).
> > > > > > > This string is added to an ordered list and with a remove button 
> > > > > > > to
> > > > > > > remove it from the list.
>
> > > > > > > Could someone, please, help me making this work. What I have is:
>
> > > > > > > (function($) {
> > > > > > >   $.fn.AddToList = function(options) {
>
> > > > > > >     var defaults = {
> > > > > > >       formids: "input1, select1, input2",
> > > > > > >       buttonId: "submit",
> > > > > > >       listId: "items"
> > > > > > >     };
> > > > > > >     var options = $.extend(defaults, options);
>
> > > > > > >     return this.each(function() {
>
> > > > > > >       $('.Remove')
> > > > > > >         .livequery('click', function(event) {
> > > > > > >         $(this).parent().remove();
> > > > > > >       });
>
> > > > > > >       $(options.buttonId).bind('click', function() {
>
> > > > > > >         $(options.listID).append("<li>??????</li>");
>
> > > > > > >       });
>
> > > > > > >     });
> > > > > > >   };
>
> > > > > > > })(jQuery);
>
> > > > > > > I created three parameters:
>
> > > > > > >   formids: The ids of the form elements from where the content 
> > > > > > > should
> > > > > > > be taken
> > > > > > >   buttonId: The id of the button that triggers the adding of the 
> > > > > > > form
> > > > > > > element values to the list
> > > > > > >   listId: The listid where the items should be added.
>
> > > > > > > I am using LiveQuery to add the remove action to the button 
> > > > > > > adding a
> > > > > > > class of Remove to all buttons.
>
> > > > > > > Thanks,
> > > > > > > Miguel

Reply via email to