php - Post looped data, then save with PDO -


i have textarea generated based on how many times they're in table id. people have no textarea, others have one, others two, etc... how can update tabled based on these using example if possible.

main page

<?php $q = $_get["q"]; $list = $db->prepare("select * table id = ?"); $list->execute(array($q)); $data = $list->fetchall(); foreach ($data $row) :?>  <textarea id="tableid<?=$row["tableid"]?>"></textarea>  <?endforeach?>  <div class="button">save</div>  <script type="text/javascript"> $( '.button' ).click(function() { var tableid = $("#tableid").attr('id'); var comment = $("#tableid").val();  $.ajax({ method: "post", url: "save.php", data : {    tableid : tableid,    comment : comment  }  });  }); </script> 

save page

<?php  $comment = $_post["comment"];  $tableid = $_post["tableid"];   $save = $db->prepare('update table  set comment = ?  tableid = ?');  $save->execute(array($comment,$tableid)); ?>  

rather generating textarea elements different numbered names, cumbersome process on end:

<textarea name="tableid1"></textarea> <textarea name="tableid2"></textarea> <textarea name="tableid3"></textarea> 

you can name them placed single $_post variable. this, name them brackets @ end of name this:

<textarea name="tableid[]"></textarea> <textarea name="tableid[]"></textarea> <textarea name="tableid[]"></textarea> 

on php side, values 3 of above text areas placed array values @ indexes 0, 1, & 2.

in case, since want each textarea associated specific tableid, use array within array using tableid first key this:

<textarea name="tableid[12][]"></textarea> <textarea name="tableid[54][]"></textarea> <textarea name="tableid[163][]"></textarea> <textarea name="tableid[180][]"></textarea> 

in doing this, you'd passing tableid part of element name, don't need post 2 different variables, comment & tableid, need post comment (textarea value).

so code in foreach loop generating page like:

<textarea id="comment[<?=$row["tableid"]?>][]"></textarea> 

and submit code (assuming wrap <textarea> elements in <form>):

$(function () {     $('form').submit(function () {         $.post('save.php', $('form').serialize(), function () {             // here if want         });         return false;     }); }); 

once have data being neatly posted in single array, prepare statement doing already, wrap execute in loop iterates through each tableid:

foreach($comment $tableid => $commenttext){     $save->execute(array($commenttext,$tableid)); }