...

View Full Version : Removing table if statement



CoolAsCarlito
01-12-2011, 09:03 PM
This script works however I'm wanting create an if statement with jquery where if there are 0 rows then removes the whole table. It does remove the row but if there are 0 rows left in the db then it removes the whole table and the else part would to me be the just remove the row.


<?php

// Include the database page
include ('../inc/dbconfig.php');

$query = "SELECT
CONCAT_WS(' ', firstname, lastname) AS name,
DATE_FORMAT(templates.datecreated, '%M %d, %Y') AS datecreated,
templates.id,
templates.templatename
FROM
templates
INNER JOIN handlers
ON templates.creator_id = handlers.id
WHERE
templates.enabled = '0'";
$result = mysqli_query ( $dbc, $query ); // Run The Query
$rows = mysqli_num_rows($result);

$itemsPerPage = 10;
$pages = ceil( $rows / $itemsPerPage );


?>
<script>
$(document).ready(function() {
$('a', $('div#addform')).click(function() {
$('#innerContent').load('forms/' + $(this).attr('id') + '.php?case=addnew');
});
// Add the table sorter and table paginator plugins
$('#templatesPageList').tablesorter()
.tablesorterPager({
container: $( '#templatesPageList .paginate' ),
cssPageLinks: 'a.pageLink'
});
$('.edit').click(function(){
var templateID = $(this).attr('rel');
$('#innerContent').load('forms/template.php?id=' + templateID + '&case=edit');
});
$('.delete').click(function(){
var templateID = $(this).attr('rel');
var dataString = 'templateID=' + templateID + '&deletetemplate=True';
$.ajax({
type: "POST",
url: "processes/template.php",
data: dataString,
});
$(this).parents("tr").eq(0).hide();
});
});
</script>

<!-- Title -->
<div id="title" class="b2">
<h2>Templates</h2>
<!-- TitleActions -->
<div id="titleActions">
<!-- ListSearch -->
<div class="listSearch actionBlock">
<div class="search">
<label for="search">Recherche</label>
<input type="text" name="search" id="search" class="text" />
</div>
<div class="submit">
<button type="submit" id="search-button" class="button"><strong><img src="img/icons/search_48.png" alt="comments" class="icon "/></strong></button>
</div>
</div>
<!-- /ListSearch -->
<!-- newPost -->
<div id="addform" class="newPost actionBlock">
<a href="#" id="template" class="button"><strong>Add New Template<img src="img/icons/add_48.png" alt="new post" class="icon "/></strong></a>
</div>
<!-- /newPost -->
</div>
<!-- /TitleActions -->
</div>
<!-- Title -->
<!-- Inner Content -->
<div id="innerContent">
<!-- ListHeader -->
<div id="listHeader">
<p class="listInfos">
You have <?php echo $rows; ?> templates.
</p>
</div>
<!-- /ListHeader -->
<!-- ListTable -->
<?php if ($rows > 0) {
?>
<table cellspacing="0" class="listTable" id="templatesPageList">
<!-- Thead -->
<thead>
<tr>
<th><a href="#" title="Template Name">Template Name</a></th>
<th><a href="#" title="Creator">Creator</a></th>
<th><a href="#" title="Date Created">Date Created</a></th>
<th class="last">Edit/Delete</th>
</tr>
</thead>
<!-- /Thead -->
<!-- Tfoot -->
<tfoot>
<tr>
<td colspan="4">
<div class="inner">
<div class="paginate">
<?php
if( $pages > 1 ) {
for( $i = 1; $i <= $pages; $i++ ) {
echo '<span style="padding-left: 5px; padding-right: 5px;"><a class="pageLink" href="#">' . $i . '</a></span>';
}
}
?>
</div>
</div>
</td>
</tr>
</tfoot>
<!-- /Tfoot -->
<!-- Tbody -->
<tbody>
<?php
while ( $row = mysqli_fetch_array ( $result, MYSQL_ASSOC ) ) {
echo '
<tr>
<td>' . $row['templatename'] . '</td>
<td>' . $row['name'] . '</td>
<td>' . $row['datecreated'] . '</td>
<td style="text-align:center;"><img src="img/notepad.png" class="edit" rel="' . $row['id'] . '"/><img src="img/Delete-icon.png" class="delete" rel="' . $row['id'] . '"/></td>
</tr>';
}
?>
</tbody>
<!-- /Tbody -->
</table>
<?php
}
?>
<!-- /ListTable -->
</div>
<!-- /Inner Content -->

Kor
01-12-2011, 09:08 PM
If it is JQuery, you should have post that into the proper sub Forum. I will move this thread there.

CoolAsCarlito
01-14-2011, 11:23 PM
Just to comment as well that I've also tried


var table = $(this).closest("table");
if (table.find("tr").length == 2) {
table.remove();
} else {
$(this).closest("tr").remove();
}

instead of


$(this).parents("tr").eq(0).hide();

The new code DOES delete the row however it still shows the table and I'm not wanting it to show the table.

One more comment to make that when it deletes the row I'm also wanting the echoed $rows number to be affected where it says "You have <?php echo $rows; ?> templates."

CoolAsCarlito
01-16-2011, 05:55 PM
Issue was resolved.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum