Submit Multiple Rows in one form

Hey,
I need to let my user register multiple dataset entries in one form.
The fields repeat themselves (name, date, etc), and when the submit button is clicked, I need a few rows to be created, one for each (name, date, etc) set.

In sql I would go
INSERT (date1, name1)
INSERT (date2, name2)
INSERT …

How do I WixCode this?

Thank you!

Hi,
You should try using wix-data.insert in order to have full control over the data you insert into your collection.

Thank you Ohad!

Something like this:

$w.onReady( function () {

$w(‘#submitButton’).onClick( function () {
$w(“#dataset1”).onReady(() => {
$w(“#dataset2”).onReady(() => {
$w(“#dataset3”).onReady(() => {

      $w('#dataset1').setFieldValue('dateField', $w('#dateInput').value); 
      $w('#dataset1').setFieldValue('nameField', $w('#nameInput').value); 
      $w('#dataset1').save(); 

      $w('#dataset2').setFieldValue('dateField', $w('#dateInput').value); 
      $w('#dataset2').setFieldValue('nameField', $w('#nameInput').value); 
      $w('#dataset2').save(); 

      $w('#dataset3').setFieldValue('dateField', $w('#dateInput').value); 
      $w('#dataset3').setFieldValue('nameField', $w('#nameInput').value); 
      $w('#dataset3').save(); 

    }) 
  }) 
}) 

})
})

Yonathan, did you ever figure this out? I have a project I am trying to do where a coach can enter his teams roster where it’s:
Name: Position: Number:
Name: Position: Number:
Name: Position: Number:
Name: Position: Number:
Name: Position: Number:

I want them to be able to submit this and it creates a new row in the database for each line if that makes sense for each of the players.

Yes, I’ve used a loop that updated the database and takes the data in by a serial set of object names with increasing numbers.

// For full API documentation, including code examples, visit Velo API Reference - Wix.com
import wixData from ‘wix-data’;
$w.onReady( function () {
//TODO: write your page related code here…

});

export function groupcheck_change(event) {
if ($w(‘#groupcheck’).checked)
$w(‘#box1’).expand();
else
$w(‘#box1’).collapse();
}

export function nonshot_change(event) {
if ($w(‘#nonshot’).checked)
$w(‘#box2’).expand();
else
$w(‘#box2’).collapse();
}

export function input3_click(event) {

}

export function page1_click(event) {
//Add your code for this event here:
}

export function input2_change(event) {
($w(‘#squadname’).text = ($w(‘#n1’).value).substring(0, 1) + ($w(‘#f1’).value).substring(0, 1)

) 

}

export function button19_click(event) {

// …

for ( var X = 1; X < 8; X++) {

if ( X < 7 && ($w(‘#n’ + X).value !== ( null || “”)) && (($w(‘#c’ + X).value == ( null || “”) )
|| ($w(‘#l’ + X).value == ( null || “”)) || ($w(‘#m’ + X).value == ( null || “”))))

    { $w('#valids').text = ("Missing squad member information for - ") + ($w('#n' + X).value)   

break
}

else if ($w(‘#e’).valid === false ) {$w(‘#valids’).text = “Please enter your email address”
break
}

else if (X == 7) {

var email = $w(‘#e’).value
const time1 = new Date();

for ( var y = 1; y < 12; y++) {

if ($w(‘#n’ + y).value === ( null || “”)) { }
else if (y === 1) {

var toInsert = {
“NAME”: $w(‘#n’ + y).value,
“LASTNAME”: $w(‘#f’ + y).value,
“EMAIL”: email,
“MEMBER”: $w(‘#m’ + y).value,
“LUNCH”: $w(‘#l’ + y).value,
“CLASS”: $w(‘#c’ + y).value,
“SQUAD”: $w(‘#squadname’).text,
“DATETIME”: time1}

        wixData.insert("Registrants", toInsert) 
        .then((results) => { 

let item = results; //see item below
})
. catch ((err) => {
let errorMsg = err;
});

    $w('#valids').text = "Thank you for registering" 
    } 

else {

    toInsert = { 

“NAME”: $w(‘#n’ + y).value,
“LASTNAME”: $w(‘#f’ + y).value,
“MEMBER”: $w(‘#m’ + y).value,
“LUNCH”: $w(‘#l’ + y).value,
“CLASS”: $w(‘#c’ + y).value,
“SQUAD”: $w(‘#squadname’).text,
“DATETIME”: time1
}

        wixData.insert("Registrants", toInsert) 
        .then((results) => { 

let item = results; //see item below
})
. catch ((err) => {
let errorMsg = err;
});

    $w('#valids').text = "Thank you for registering your squad. To edit your registration, please re-submit your current details, and contact us."  

    }; 
            }; 

break
}

} 

}