TARS166 Ответов: 0

Как присвоить 0 скрытым полям и реверсировать их при отображении?


So I'm trying assign 0 to some hidden dynamic text boxes, and perform the reverse i.e, clear the 0 when data is shown again.  The hiding and showing of these text boxes is controlled by a slider that is above those text fields.


$db = pg_connect("");
session_start();

<!-- ARRAY OF SCANNED DATA FROM THE PREVIOUS PAGE -->
$_SESSION['grid'] = $_REQUEST['grid'];
$grid = $_SESSION['grid'];

<!-- ARRAY OF SCANNED BARCODES ARE SEPARATED AND USED IN THE QUERY -->
$d = implode(',', $grid);
$sql = "select distinct size from items where main_group IN(select distinct 
main_group from items where addl_item_code_barcode IN ($d)) ORDER BY size";
$result = pg_query($db, $sql);
<!-- END -->

<!-- MASTER TEXT FIELD WHERE DATA ENTERED IS REFLECTED IN ALL TEXT FIELDS 
CREATED IN THE LOOP --> 
<input class="form-control" type="text" name="add0" id="add0" 
onkeyup="sync()">
<!-- END -->

<form action="add.php" method="GET">
<div class="row">
$counter = 1;
while ($res = pg_fetch_assoc($result)) {
?>

<!-- THIS ENTIRE DIV GETS SHOWN/HID WHEN THE SLIDER IS MOVED -->
<div class="col-md-2 show-hide">
<input type="text" value="<?php echo $res['size']; ?> " name="size[]" id= " 
<?php echo $res['size']; ?>" readonly style="background-color: #F5F5F5;" 
class="form-control" />

<!-- DYNAMIC TEXT FIELDS ARE DISPLAYED HERE -->
<div id="addition<?php echo $counter; ?>"> 
</div>
</div>
<!-- END OF DIV THAT GETS SHOWN/HID -->

<?php
$counter = $counter + 1;}
</div>
<button type="submit" value="submit">Apply</button>

<script>
$(document).ready(function () {
<!-- CODE TO ASSIGN DYNAMIC ID'S TO INPUT FIELDS -->
for (var i = 1; i < 9; i++)     
{
$('#addition' + i).append('<input class="form-control" type="text" 
name="add[]" id="add' + i + '" />');
}
}       


<!-- CODE FOR SLIDER -- >
$('#slider').slider({
min: 36,
max: 50,
step: 1,
values: [36, 50],
range: true,
slide: function (event, ui) {
$.each(ui.values, function (i, v) {
$('input.value').eq(i).val(v);
});
$('input.value').change(function () {
var $this = $(this);
$('#slider').slider('values', $this.attr('data-index'), 
$this.val());
});
<!-- END CODE FOR SLIDER --> 
 });
</script>


Что я уже пробовал:

Я попытался использовать следующее, чтобы скрыть/показать и назначить/очистить ноль в полях

<!-- SCRIPT TO HIDE AND SHOW DATA -->
$('.show-hide').each(function (idx, div) {
var $div = $(div);
var value = $div.children().first().val();
if (value < ui.values[0] || value > ui.values[1]) {

<!-- TO ASSIGN 0 WHEN THE FIELDS -->
$div.find('input:nth-of-type(2)').val('0'); <-- I BELIEVE THIS IS WHERE THE PROBLEM IS->
$div.hide();
} 
else {
<!-- THE FIELD IS CLEARED-->
$div.find('input:nth-of-type(2)').val('');
$div.show();
}});
}});
<!-- END OF HIDE/SHOW SCRIPT -->  


The expected output is the hidden text field will be assigned zero, and will do the complete opposite when it's shown again.

This is how it looks like. https://ibb.co/t4TcV4S

0 Ответов