I want to get the quantity value on change to show in the input, I make it data-cat_id='{$quantity}’ to show, but it cannot work.This value='{$id_book}’ is cannot change to ‘{$quantity}’, because id_book I want to use other place. Below is my coding:
JavaScript
x
<label>Choose Book:<span style="color:red;"> *</span></label>
<select class="form-control" id="publisher" name="publisher" title="publisher">
<option value="">Please Select</option>
<?php
$sql_branch = 'select * from book_lending where status=1 order by id';
$arr_branch = db_conn_select($sql_branch);
foreach ($arr_branch as $rs_branch) {
$quantity = $rs_branch['quantity'];
$id_book = $rs_branch['id'];
$book_title = $rs_branch['title'];
//echo '<option value="' . $rs_branch['id'] . '" data-cat_id='{$quantity}'>' . $rs_branch['title'] . '</option>';
echo "<option value='{$id_book}' data-cat_id='{$quantity}'>{$book_title}</option>";
}
?>
</select>
<label for="cp1" class="control-label">Book Stock<span style="color:red;"> *</span></label>
<input readonly="readonly" type="text" class="form-control" id="editor" name="editor" title="editor" value="" >
<script>
//let cat_id = selectObject.value;
let cat_id = selectObject.selectedOptions[0].getAttribute("data-cat_id");
$(function(){
$(cat_id).change(function(){
var value=$(cat_id).val();
$("#editor").val(value);
})
})
</script>
Hope someone can guide me how to show data-cat_id value in the input. Thanks.
Advertisement
Answer
I hope I understood correctly that you wish to set the dataset
attribute cat_id
associated with each option in the text
input field when the user changes the dropdown selection?
JavaScript
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title></title>
</head>
<body>
<label>Choose Book:<span style='color:red;'> *</span></label>
<select class='form-control' id='publisher' name='publisher' title='publisher'>
<option selected hidden disabled>Please Select
<?php
# Un-comment the following
/*
$sql_branch = 'select * from book_lending where status=1 order by id';
$arr_branch = db_conn_select( $sql_branch );
*/
#to emulate a recordset...Remove this next piece
$arr_branch=array(
['id'=>1,'quantity'=>2,'title'=>'Top tips'],
['id'=>2,'quantity'=>4,'title'=>'Tip tops'],
['id'=>3,'quantity'=>8,'title'=>'Stop Tip'],
['id'=>5,'quantity'=>16,'title'=>'Pit Stop'],
);
#stop
foreach ( $arr_branch as $rs_branch ) {
printf(
'<option value="%s" data-cat_id="%s">%s',
$rs_branch['id'],
$rs_branch['quantity'],
$rs_branch['title']
);
}
?>
</select>
<label for='cp1' class='control-label'>Book Stock<span style='color:red;'> *</span></label>
<input readonly='readonly' type='text' class='form-control' id='editor' name='editor' title='editor' value='' />
<script>
let oSelect=document.querySelector('select[name="publisher"]');
let oInput=document.querySelector('input[name="editor"]');
oSelect.addEventListener('change',function(e){
oInput.value=this.options[ this.options.selectedIndex ].dataset.cat_id;
});
</script>
</body>
</html>
JavaScript
let oSelect=document.querySelector('select[name="publisher"]');
let oInput=document.querySelector('input[name="editor"]');
oSelect.addEventListener('change',function(e){
oInput.value=this.options[this.options.selectedIndex].dataset.cat_id;
});
JavaScript
<label>Choose Book:<span style='color:red;'> *</span></label>
<select class='form-control' id='publisher' name='publisher' title='publisher'>
<option selected hidden disabled>Please Select
<option value="1" data-cat_id="2">Top tips
<option value="2" data-cat_id="4">Tip tops
<option value="3" data-cat_id="8">Stop Tip
<option value="5" data-cat_id="16">Pit Stop
</select>
<label for='cp1' class='control-label'>Book Stock<span style='color:red;'> *</span></label>
<input readonly='readonly' type='text' class='form-control' id='editor' name='editor' title='editor' value='' />