That's what serialize() is for:

$(':submit').click(function(){
    var data = $(this).parents('form:first').serialize();
    // or $('#formID').serialize();
    $.post("delete.php", data, function(){ ... });
});

On Jan 1, 8:48 am, jjshell <blahblahcoui...@gmail.com> wrote:
> Hi Ricardo, thanks for your reply.
> I think I must be missing something when it comes to $.post a form in
> jQuery. It seems too complicated to have to do something like this:
>
> $.post("delete.php",{
>               field1: $("#field1").val(),
>               field2: $("#field2").val(),
>               field3: $("#field3").val(),
>               field4: $("#field4").val(),
>         }
>
> Isn't there a way to simply post the whole form, with the whole post
> collection, to the specified url, without having to specify which
> field should be collected? That would make dealing with checkboxes
> much easier...
>
> Here's a sample form. How would you submit it?
>
> <form name="test" id="test" method="post" action="script.php">
>
> <input type="text" name="field1" id="field1"  value="" />
> <input type="text" name="field2" id="field2"  value="" />
> <input type="text" name="field3" id="field3"  value="" />
> <input type="text" name="field4" id="field4"  value="" />
>
> <input type="checkbox" name="city[]" class="cities" value="1" />
> <input type="checkbox" name="city[]" class="cities" value="2" />
> <input type="checkbox" name="city[]" class="cities" value="3" />
> <input type="checkbox" name="city[]" class="cities" value="4" />
> <input type="checkbox" name="city[]" class="cities" value="5" />
>
> Regards,
>
> -jj.
>
> On 31 déc 2008, 22:56, Ricardo Tomasi <ricardob...@gmail.com> wrote:
>
> > Assuming you have unique names:
>
> > var CheckedIDs = [];
>
> >     $("input.items_id").livequery('click',function(event){
> >       $("input.items_id").each(function() {
> >         if (this.checked) { CheckedIDs[this.name] = $(this).attr
> > ("value"); }
> >         else { CheckedIDs[this.name] = null }
> >       });
> >     });
>
> > Why do you need to store them in an array anyway? The checked ones
> > values will be submitted with the form, and you can access them at
> > anytime with $(":checkbox:checked")
>
> > On Dec 31, 3:52 pm, jjshell <blahblahcoui...@gmail.com> wrote:
>
> > > Ok I'm getting closer... And thanks again for your help :)
>
> > > I can manage to have the checked checkboxes added to the CheckedIDs
> > > array. However, if I uncheck a checkbox, it is not removed from the
> > > array.
>
> > > It's the last little problem I have to solve :)
>
> > > Here's my code:
>
> > > var CheckedIDs = [];
>
> > >     $("input.items_id").livequery('click',function(event){
> > >       $("input.items_id").each(function() {
> > >         if(this.checked){CheckedIDs.push($(this).attr("value"));}
> > >       });
> > >       //alert('clicked');
> > >     });
>
> > > On 31 déc, 17:33, Joe <joseph.is...@gmail.com> wrote:
>
> > > > I don't believe you are using livequery in the proper way.  You're
> > > > passing an 'each' event, which does not exist here.
>
> > > > In theory, you could do the following:
>
> > > > $("input.item_id").livequery('foo',function(bar) {
> > > > alert('nothing happens');
>
> > > > });
>
> > > > In the console, you will see the length of the wrapped set, the number
> > > > of inputs with class "item_id".
>
> > > > Check the API again:  http://brandonaaron.net/docs/livequery/#api
>
> > > > Also, $.each method is similar to a for-loop:  
> > > > http://docs.jquery.com/Core/each
>
> > > > That's a start for sure...
>
> > > > Cheers.
>
> > > > Joe
>
> > > >http://www.subprint.com
>
> > > > On Dec 31, 9:39 am, jjshell <blahblahcoui...@gmail.com> wrote:
>
> > > > > The problem seems to be located around these parts:
>
> > > > > var CheckedIDs = [];
> > > > > $("input.item_id").livequery('each',function(add) {
> > > > >       if (this.checked){
> > > > >        alert('push');
> > > > >        CheckedIDs.push($(this).attr("value"));
> > > > >      }
>
> > > > > });
>
> > > > > On 31 déc, 15:26, jjshell <blahblahcoui...@gmail.com> wrote:
>
> > > > > > Thanks for your reply :)
>
> > > > > > I only get the alert nothing selected though... Tried to go through
> > > > > > the code, couldn't find what is wrong...
>
> > > > > > Regards,
>
> > > > > > -jj.
>
> > > > > > On 31 déc, 14:51, MorningZ <morni...@gmail.com> wrote:
>
> > > > > > > Not sure if it's the *best* way, but it works
>
> > > > > > > I'd do something like
>
> > > > > > > var CheckedIDs = [];
> > > > > > > $("input.item_id").each(function() {
> > > > > > >       if (this.checked) { CheckedIDs.push($(this).attr("value")); 
> > > > > > > }});
>
> > > > > > > if (CheckedIDs.length == 0) {
> > > > > > >      alert("Nothing selected!");}
>
> > > > > > > else {
> > > > > > >      $.post(
> > > > > > >           "delete.php",
> > > > > > >          item_ids: CheckedIDs.join(","),
> > > > > > >          function(data) {
> > > > > > >               //Handle the returned results
> > > > > > >          }
>
> > > > > > > }
>
> > > > > > > "delete.php" will see a comma delimited string of IDs to delete
>
> > > > > > > On Dec 31, 7:11 am, jjshell <blahblahcoui...@gmail.com> wrote:
>
> > > > > > > > Hi,
>
> > > > > > > > I have a tabular data I need to be able to delete by selecting
> > > > > > > > checkboxes, and submitting a form (a .php script then checks 
> > > > > > > > which
> > > > > > > > checkboxes have been submitted, delete by id, return an updated 
> > > > > > > > list
> > > > > > > > of the items injected into the dom).
>
> > > > > > > > My problem is that I currently can't manage to gather these 
> > > > > > > > checkboxes
> > > > > > > > values as an array.
>
> > > > > > > > Please consider the below code:
>
> > > > > > > > $(document).ready(function(){
>
> > > > > > > >     //submit the form
> > > > > > > >     $("form#form-delete").livequery('submit', function(event){
> > > > > > > >       $("span#wait").html('<img name="wait" src="wait.jpg" />');
> > > > > > > >       $.post("delete.php",{
> > > > > > > >               item_id: $(".item_id").val(),
> > > > > > > >         },function(data){
> > > > > > > >         $("span#wait").html('');
> > > > > > > >         $("div#view-items").html(data);
> > > > > > > >       });
> > > > > > > >       return false;
> > > > > > > >     });
>
> > > > > > > > });
>
> > > > > > > > And the html:
>
> > > > > > > > <input name="item_id" class="item_id" value="1" type="checkbox">
> > > > > > > > <input name="item_id" class="item_id" value="2" type="checkbox">
> > > > > > > > <input name="item_id" class="item_id" value="3" type="checkbox">
> > > > > > > > <input name="item_id" class="item_id" value="4" type="checkbox">
> > > > > > > > //etc.
>
> > > > > > > > What would be the ideal jQuery way to handle checkboxes?
>
> > > > > > > > Thanks in advance for your time :)
>
> > > > > > > > Regards,
>
> > > > > > > > -jj.- Masquer le texte des messages précédents -
>
> > > > > > > - Afficher le texte des messages précédents -- Masquer le texte 
> > > > > > > des messages précédents -
>
> > > > > > - Afficher le texte des messages précédents -- Masquer le texte des 
> > > > > > messages précédents -
>
> > > > - Afficher le texte des messages précédents -- Masquer le texte des 
> > > > messages précédents -
>
> > - Afficher le texte des messages précédents -

Reply via email to