0

Hi Friend.

i want to add a tr in an table using php only.

please help me how to create it.

i dont want jquery or javascript.

2
Contributors
3
Replies
18
Views
2 Years
Discussion Span
Last Post by diafol
1

PHP must add the row before being sent to the client. So it can't be added interactively - unless you use AJAX, which will involve javascript/jQuery.

If you show your code, we'll have a better idea of what you want to do.

0

thanks diafol.

I tried using the below code. but i am unable to get the second drop down value.

index.php

`

<!DOCTYPE html>
<?php include('../conn.php'); 
ini_set ('display_errors', 1);
error_reporting (E_ALL & ~E_NOTICE);
?>
<html>
<head>
<title>jquery add remove table row dynamically with checkbox functionality</title>
<style>
@font-face{font-family: Lobster;src: url('Lobster.otf');}
h1{font-family: Lobster;text-align:center;}
table{border-collapse:collapse;border-radius:25px;width:880px;}
table, td, th{border:1px solid #00BB64;}
tr,input{height:30px;border:1px solid #fff;}
input{text-align:center;}
input:focus{border:1px solid yellow;} 
.space{margin-bottom: 2px;}
#container{margin-left:210px;}
.but{width:270px;background:#00BB64;border:1px solid #00BB64;height:40px;border-radius:3px;color:white;margin-top:10px;margin:0px 0px 0px 290px;}
</style>
<script src='jquery-1.9.1.min.js'></script>
</head>
<body>
<h1>Student Marks</h1>
<div id='container'>
<form id='students' method='post' name='students' action='index.php'>

<table border="1" cellspacing="0">
  <tr>
    <th><input class='check_all' type='checkbox' onclick="select_all()"/></th>
    <th>S. No</th>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Tamil</th>
    <th>English</th>
    <th>Computer</th>
    <th>Conn Type</th>
    <th>Type</th>
  </tr>
  <tr>
    <td><input type='checkbox' class='case'/></td>
    <td>1.</td>
    <td><input type='text' id='first_name' name='first_name[]'/></td>
    <td><input type='text' id='last_name' name='last_name[]'/></td>
    <td><input type='text' id='tamil' name='tamil[]'/></td>
    <td><input type='text' id='english' name='english[]'/> </td>
    <td><input type='text' id='computer' name='computer[]'/></td>
    <td><select id='c_type'  onChange='showptype1(this.value)' ><option value=''>Select Ctype...</option><?php $query = "SELECT distinct SCYQ64CTYPE FROM $database.FQ64006"; $result = odbc_exec($connection,$query); while($row = odbc_fetch_array($result))   {   ?><option value="<?php echo trim($row['SCYQ64CTYPE']); ?>"><?php echo trim($row['SCYQ64CTYPE']); ?></option><?php } ?></select> </td>
    <td><select id='type1'><option value="">Select type...</option><?php $tquery = "SELECT distinct SCYQ64TYPE FROM $database.FQ64006 WHERE SCYQ64CTYPE = '$q'"; $result = odbc_exec($connection,$tquery); while($trow = odbc_fetch_array($tresult)) {   ?><option value="<?php echo trim($trow['SCYQ64TYPE']); ?>"><?php echo trim($trow['SCYQ64TYPE']); ?></option><?php } ?></select></td>
  </tr>
</table>

<button type="button" class='delete'>- Delete</button>
<button type="button" class='addmore'>+ Add More</button>
<p>
<input type='submit' name='submit' value='submit' class='but'/></p>
</form>
</div>

<script>
<?php
$query = "SELECT distinct SCYQ64CTYPE FROM $database.FQ64006"; $result = odbc_exec($connection,$query); 
$tquery = "SELECT distinct SCYQ64TYPE FROM $database.FQ64006 WHERE SCYQ64CTYPE = '$q'"; $result = odbc_exec($connection,$tquery);
?>
$(".delete").on('click', function() {
    $('.case:checkbox:checked').parents("tr").remove();

});
var i=2;
$(".addmore").on('click',function(){
    var data="<tr><td><input type='checkbox' class='case'/></td><td>"+i+".</td>";
    data +="<td><input type='text' id='first_name"+i+"' name='first_name[]'/></td> <td><input type='text' id='last_name"+i+"' name='last_name[]'/></td><td><input type='text' id='tamil"+i+"' name='tamil[]'/></td><td><input type='text' id='english"+i+"' name='english[]'/></td><td><input type='text' id='computer"+i+"' name='computer[]'/></td><td><select id='c_type"+i+"'  onChange='showptype"+i+"(this.value)' ><option value=''>Select Ctype...</option><?php while($row = odbc_fetch_array($result)){?><option value='<?php echo trim($row['SCYQ64CTYPE']); ?>'><?php echo trim($row['SCYQ64CTYPE']); ?></option><?php } ?></select></td><td><select id='type"+i+"' onChange='AddToStack"+i+"();'><option value=''>Select type...</option><?php while($trow = odbc_fetch_array($tresult))   {   ?><option value='<?php echo trim($trow['SCYQ64TYPE']); ?>'><?php echo trim($trow['SCYQ64TYPE']); ?></option><?php } ?></select></td></tr>";
    $('table').append(data);

    function showptype"+i+"(str1)
    {
        if (str1=='')
          {
          document.getElementById('type"+i+"').innerHTML='';
          return;
          }
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById('type"+i+"').innerHTML=xmlhttp.responseText;
            }
          }
        xmlhttp.open('GET','getptype.php?rid='+i+'&q='+str1,true);
        xmlhttp.send();
    }
    i++;
});

function select_all() {
    $('input[class=case]:checkbox').each(function(){ 
        if($('input[class=check_all]:checkbox:checked').length == 0){ 
            $(this).prop("checked", false); 
        } else {
            $(this).prop("checked", true); 
        } 
    });
}

function showptype1(str1)
    {
        var rid=1;
        console.log(rid);
        if (str1=='')
          {
          document.getElementById('type1').innerHTML='';
          return;
          }
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById('type1').innerHTML=xmlhttp.responseText;
            }
          }
        xmlhttp.open('GET','getptype.php?rid='+rid+'&q='+str1,true);
        xmlhttp.send();
    }

</script>

<?php
if(isset($_POST['submit'])){
print_r($_POST);
}
?>

</body>
</html>

getptype.php

<?php
    session_start();
    include('conn.php');

    $q=$_GET['q'];
    echo $rid=$_GET['rid'];
    $tquery="select * from $database.FQ64006 WHERE SCYQ64CTYPE='$q'";
    $tresult = odbc_exec($connection,$tquery);

    if($q!=='')
        {
?>
    <select name="type[]"  onChange='AddToStack<?php echo $rid; ?>();' id="type<?php echo $rid; ?>"><option value=''>Select type</option><?php while($trow=odbc_fetch_array($tresult)) { ?>
<option value="<?php echo trim($trow["SCYQ64TYPE"]); ?>"><?php echo trim($trow["SCYQ64TYPE"]); } ?><option>
</select> 
<?php } ?>
0

How do you even maintain this Pal? It's pretty grim - so no offence - but markup, css, js, php, sql all mixed to hell. Separarte out your concerns / languages.

If you have php in a page, place it above the !doctype declaration (or in include files).

Just have trivial php in the page, like echo/conditionals/loops

Leave all styling to a css file - don't use style tags if you can avoid it - even table attributes - border and cellspacing.

THe js is inline and a mix of native and jQuery.

This is pretty painful to try and dissect. Here's an example of how you could clean it up:

<?php 
    ini_set ('display_errors', 1);
    error_reporting (E_ALL & ~E_NOTICE);
    include('../conn.php'); 

?>
<!DOCTYPE html>
<html>
<head>
    <title>jquery add remove table row dynamically with checkbox functionality</title>
    <link href="yourcssfile.css" rel="stylesheet">
</head>

<body>
    <h1>Student Marks</h1>
    <div id='container'>
        <form id='students' method='post' name='students' action='index.php'>
            <table border="1" cellspacing="0">
                <tr>
                    <th>
                        <input class='check_all' type='checkbox' />
                    </th>
                    <th>
                        S. No
                    </th>
                    <th>
                        First Name
                    </th>
                    <th>
                        Last Name
                    </th>
                    <th>
                        Tamil
                    </th>
                    <th>
                        English
                    </th>
                    <th>
                        Computer
                    </th>
                    <th>
                        Conn Type
                    </th>
                    <th>
                        Type
                    </th>
                </tr>
                <tr>
                    <td>
                        <input type='checkbox' class='case'/>
                    </td>
                    <td>
                        1.
                    </td>
                    <td>
                        <input type='text' id='first_name' name='first_name[]'/>
                    </td>
                    <td>
                        <input type='text' id='last_name' name='last_name[]'/>
                    </td>
                    <td>
                        <input type='text' id='tamil' name='tamil[]'/>
                    </td>
                    <td>
                        <input type='text' id='english' name='english[]'/>
                    </td>
                    <td>
                        <input type='text' id='computer' name='computer[]'/>
                    </td>
                    <td>
                        <select id='c_type' name='c_type'>
                            <option value=''>Select Ctype...</option>
                            <?php foreach($array1 as $item) ?>
                            <option value="<?= $item['SCYQ64CTYPE']; ?>">
                                <?= $item['SCYQ64CTYPE']; ?>
                            </option>
                        </select>
                    </td>
                    <td>
                        <select id='type1' name='type1' >
                            <option value="">Select type...</option>
                            <?php foreach($array2 as $item) ?>
                            <option value="<?= $item['SCYQ64TYPE']; ?>">
                                <?= $item['SCYQ64TYPE']; ?>
                            </option>
                         </select>
                     </td>
                </tr>
            </table>
            <button type="button" class='delete'>- Delete</button>
            <button type="button" class='addmore'>+ Add More</button>
            <p>
                <input type='submit' name='submit' value='submit' class='but'/>
            </p>
        </form>
    </div>

    <script src='jquery-1.9.1.min.js'></script>
    <script src="myjsfile.js"></script>
</body>
</html>

The <th>, <td> and <p> newline/indent for content may be overkill, but at least it's clear. I may have a look at the issue if I have time, but suffice to say, you'll get far more contributions to your issues if you code cleanly.

Edited by diafol

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.