1

please excuse me as I am not proficient in php/mysql. I have an html form for inventory. I have a set of fields to update my sql database, they are item_name, item_cost, item_quantity. I have a jquery button that allows the user to dynamically add additional items/rows.

Question: how can I have php loop whatever number of items the user adds and put them in the mysql database?

thank you for your time.

1
  • can you share some code? Commented Aug 22, 2012 at 1:14

2 Answers 2

4

If you have multiple form inputs with the same name, and that name ends in double square brackets [], their values will be turned into an array when PHP populates $_POST from the form.

So your jQuery button should insert a row with fields named like this:

<input type="text" name="item_name[]" value="" />
<input type="text" name="item_cost[]" value="" />
<input type="text" name="item_quantity[]" value="" />

In your PHP code that takes the form submission, you can process all the rows that exist like this:

//I used `item_name` as the loop termination condition, 
//but any of the 3 keys would have worked
for ($i = 0; $i < count($_POST['item_name']); $i++) {
    $item_name = $_POST['item_name'][$i];
    $item_cost = $_POST['item_cost'][$i];
    $item_quantity = $_POST['item_quantity'][$i];

    //here, inside the loop, run your database query using the 3 values above    
}
Sign up to request clarification or add additional context in comments.

1 Comment

this looks perfect... I am going to try this asap! Thank you all for your time!
0

Another (hard) way is to have a hidden input box which it's value is the number of the items the users wants to submit, on each jquery "add button" clicked, also the value of the hidden input will be updated(value++), and you should do the other input names like "name_id" while you're making them with jquery, so you could get them on server side... .

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.