开发者

get data from dynamically created html table for certain columns

my current problem is : I have a HTML table created "dynamically" according to how many rows brings back a mysql_query. The first column gets tha data from the query and the second column have a text field (see below):

<?php 
    $selApart = "SELECT idAPARTMENT FROM BUILDING, APARTMENT WHERE APARTMENT.BUILDING_ID = BUILDING.idBUILDING AND idBUILDING = '$building'";
    $res = mysql_query($selApart) or die("Could not execute query.");

?>
  <table width="244" border="0" cellspacing="0" id="hours_table">
    <tr>
      <td width="121">APARTMENT</td>
      <td width="119">HOURS</td>
    </tr>
<?php 
    $rcnt = 0;
    while($r = mysql_fetch_array($res)){
        $a = $r['idAPARTMENT'];
        $rcnt++;
        $rid = 'row'.$rcnt;
    ?>
    <tr>
      <td>'<?php echo $a?>'</td>
      <td id='<?php echo $rid?>'><input type="text" name="hours" id="hours" value="0"/></td>
    </tr>
<?php } ?>
<in开发者_Go百科put type="submit" name="complete" id="complete" align="middle" value="INSERT"/>

After my table is "ready", I want to fill in my text fields and insert these values in an sql table. What I don't know is how I can get the value of each column through the id I set, sth like

if(isset($_POST['complete'])){
    for($i=0; $i<$rcnt; $i++){
       //INSERT INTO APARTMENT (idAPARTMENT, HOURS) VALUES ($a, **table.row.id**)
    }
}

Can someone help? Is this possible to be done? Thanks in advance!


He, thing you have to do is add $rid as name to text box, then just submit form and you will have them in $_POST["row"+$rid];

You can loop through every $_POST and if variable starts with row + num save it in db

foreach($_POST as $key => $value)
   //if $key starts with row execute your db save

I hope this helps


Put that table into a form with method=POST and when submitting you'll find all input's in the $_POST array by name.

<?php

    print_r($_POST);//this will just show you the contents of the array, you play with it later on

    $selApart = "SELECT idAPARTMENT FROM BUILDING, APARTMENT WHERE APARTMENT.BUILDING_ID = BUILDING.idBUILDING AND idBUILDING = '$building'";
    $res = mysql_query($selApart) or die("Could not execute query.");

?>
<form action="" method="POST"><!-- table must be included in a form with action pointing the script location, "" means itself -->
  <table width="244" border="0" cellspacing="0" id="hours_table">
    <tr>
      <td width="121">APARTMENT</td>
      <td width="119">HOURS</td>
    </tr>
<?php 
    $rcnt = 0;
    while($r = mysql_fetch_array($res)){
        $a = $r['idAPARTMENT'];
        $rcnt++;
        $rid = 'row'.$rcnt;
    ?>
    <tr>
      <td>'<?php echo $a?>'</td>
      <td id='<?php echo $rid?>'><input type="text" name="hours<?= $a ?>" id="hours" value="0"/></td><!-- name="hourse<?= $a ?>" each name must be unique, that's why you include the ID from your table. It's not a good idea to put a counter, use actual data from the table.  -->
    </tr>
<?php } ?>
    </table>
    <input type="submit" name="complete" id="complete" align="middle" value="INSERT"/>
</form>


The post "get data from dynamically created html table for certain columns" was very useful. It helped me a lot, but needs a little change:

 <?php
   //database connectivity
   mysql_connect ("localhost","root","","sis")or die("cannot connect"); 
   mysql_select_db("sis")or die("cannot select DB");
    //query to fetch data
   $sql1="select * from student";
   $result1=  mysql_query($sql1);
        // forming table to view data
    if($result1){
       echo "<table cellspacing='1' cellpadding='5'>
       <th width='30%'>Roll_No </th>
       <th width='40%'>Name </th>
       <th width='30%'>Sem & Sec </th>";

         while($row=mysql_fetch_array($result1)){

          $Roll_No=$row['Roll_No'];
          $Name=$row['Name'];
          $Sem_Sec=$row['Sem_Sec'];
          echo"<tr>
         <td>$Roll_No</td>
         <td>$Name</td>
         <td>$Sem_Sec</td>
         </tr>";

        }
        ?> 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜