- Better Js

- Better HTML structure
- Correct dynamic build of the SQL statement
- Stores filters and filters operations in session
- Boolean values are converted as strings inside the table
This commit is contained in:
Paolo
2017-12-01 15:45:59 +01:00
parent ec00c93d04
commit 54f1403054
5 changed files with 217 additions and 99 deletions
@@ -7,6 +7,16 @@
<script language="Javascript" type="text/javascript">
$(document).ready(function() {
$("#addField").change(function() {
$("#filterForm").submit();
});
$(".remove-field").each(function() {
$(this).click(function() {
$("#rmField").val($(this).attr('fieldToRemove'));
});
});
$("#addFilter").change(function() {
$("#filterForm").submit();
});
@@ -1,23 +1,33 @@
<div>
<?php
$selectedFields = FilterWidget::getSelectedFields();
<?php
$selectedFields = FilterWidget::getSelectedFields();
foreach ($selectedFields as $key => $value)
{
echo '<input type="submit" value="'.$value.'" onClick="document.getElementById(\'rmField\').value=\''.$value.'\'">';
}
?>
<input type="hidden" id="rmField" name="rmField" value="">
for ($selectedFieldsCounter = 0; $selectedFieldsCounter < count($selectedFields); $selectedFieldsCounter++)
{
$selectedField = $selectedFields[$selectedFieldsCounter];
?>
<input type="submit" value="<?php echo $selectedField; ?> X" class="remove-field" fieldToRemove="<?php echo $selectedField; ?>">
<?php
}
?>
<input type="hidden" id="<?php echo FilterWidget::CMD_REMOVE_FIELD; ?>" name="<?php echo FilterWidget::CMD_REMOVE_FIELD; ?>" value="">
</div>
<div>
Add:
<select name="addField" onChange="document.getElementById('filterForm').submit()">
<option value="">Select a field to add..</option>
<span>
Add field:
</span>
<span>
<select id="<?php echo FilterWidget::CMD_ADD_FIELD; ?>" name="<?php echo FilterWidget::CMD_ADD_FIELD; ?>">
<option value="">Select a field to add..</option>
<?php
foreach ($listFields as $key => $value)
for ($listFieldsCounter = 0; $listFieldsCounter < count($listFields); $listFieldsCounter++)
{
echo '<option value="'.$value.'">'.$value.'</option>';
$listField = $listFields[$listFieldsCounter];
?>
<option value="<?php echo $listField; ?>"><?php echo $listField; ?></option>
<?php
}
?>
</select>
</select>
</span>
</div>
@@ -24,15 +24,15 @@
<?php
}
?>
<input type="hidden" id="rmFilter" name="rmFilter" value="">
<input type="hidden" id="<?php echo FilterWidget::CMD_REMOVE_FILTER; ?>" name="<?php echo FilterWidget::CMD_REMOVE_FILTER; ?>" value="">
</div>
<div>
<span>
Add filter:
</span>
<span>
<select id="addFilter" name="addFilter">
<option value="">Select a field to add...</option>
<select id="<?php echo FilterWidget::CMD_ADD_FILTER; ?>" name="<?php echo FilterWidget::CMD_ADD_FILTER; ?>">
<option value="">Select a filter to add...</option>
<?php
for ($listFieldsCounter = 0; $listFieldsCounter < count($listFields); $listFieldsCounter++)
{
@@ -1,5 +1,5 @@
<?php
$result = $dataset->retval;
$results = $dataset->retval;
$selectedFields = FilterWidget::getSelectedFields();
?>
@@ -9,35 +9,50 @@
<thead>
<tr>
<?php
foreach ($selectedFields as $key => $value)
for ($selectedFieldsCounter = 0; $selectedFieldsCounter < count($selectedFields); $selectedFieldsCounter++)
{
if (array_key_exists($value, $result[0]))
{
$selectedFilter = $selectedFields[$selectedFieldsCounter];
?>
<th title="<?php echo $value; ?>"><?php echo $value; ?></th>
<th title="<?php echo $selectedFilter; ?>"><?php echo $selectedFilter; ?></th>
<?php
}
}
?>
</tr>
</thead>
<tbody>
<?php
foreach ($result as $key => $value)
for ($resultsCounter = 0; $resultsCounter < count($results); $resultsCounter++)
{
echo "<tr>";
foreach ($selectedFields as $key2 => $value2)
$result = $results[$resultsCounter];
?>
<tr>
<?php
for ($selectedFieldsCounter = 0; $selectedFieldsCounter < count($selectedFields); $selectedFieldsCounter++)
{
if (array_key_exists($value2, $value))
$selectedFilter = $selectedFields[$selectedFieldsCounter];
if (array_key_exists($selectedFilter, $result))
{
?>
<td><?php echo $value->{$value2}; ?></td>
<td>
<?php
if (is_bool($result->{$selectedFilter}))
{
echo $result->{$selectedFilter} === true ? 'true' : 'false';
}
else
{
echo $result->{$selectedFilter};
}
?>
</td>
<?php
}
}
echo "</tr>";
?>
</tr>
<?php
}
?>
</tbody>