Сейчас у меня проблема программирования. То, что я пытаюсь сделать, - это динамически распределить значение на 3 входных тега. поэтому основная идея состоит в том, что сумма этих трех входов не должна превышать заданное значение.
поэтому мой код похож на этот
<!doctype html>
<html>
<head>
<script type="text/javascript" src="../../jQuery/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
var
total = parseInt($('#quantityRequired').text()),
inputs = $('input[type="number"]');
inputs
.attr('max', total)
.change(function() {
//Make sure that current value is in range
if($(this).val() > parseInt($(this).attr('max'))) {
$(this).val($(this).attr('max'));
} else if ($(this).val() < parseInt($(this).attr('min'))) {
$(this).val($(this).attr('min'));
}
//Get currently available total
var current = available();
//Now update max on each input
$('input').each(function(indx) {
$(this).attr('max', parseInt($(this).val()) + total - current);
});
});
function available() {
var sum = 0;
inputs.each(function() {
sum += parseInt($(this).val());
});
return sum;
}
</script>
</head>
<body>
<?php
$projectName = strval($_GET['project']);
$thicknessValue = intval($_GET['thicknessValue']);
$baseplateValue = strval($_GET['baseplateValue']);
$query = "SELECT QTY_REQUIRED, QTY_CUT FROM COMPONENT
WHERE THICKNESS = :thicknessVal
AND PROJECT_NAME = :projectName
AND BASE_PLATE = :baseplateVal
AND REQUEST_STATUS = 'OPEN'";
$result = oci_parse($conn, $query);
oci_bind_by_name($result, ":projectName", $projectName);
oci_bind_by_name($result, ":thicknessVal", $thicknessValue);
oci_bind_by_name($result, ":baseplateVal", $baseplateValue);
oci_execute($result);
?>
<?php
while ($row = oci_fetch_array($result, OCI_BOTH)){
$qtyAvailable = $row['QTY_REQUIRED'] - $row['QTY_CUT'];
echo '<span id="quantityRequired">'.$qtyAvailable.'</span>';
echo '<input id="cncQty" name="cncQty" type="number" min="0" value="0" placeholder="CNC" required>';
echo '<input id="scatorQty" name="scatorQty" type="number" min="0" value="0" placeholder="SCATOR" required>';
echo '<input id="manualQty" name="manualQty" type="number" min="0" value="0" placeholder="MANUAL" required>';
echo '<br/>';
}
?>
</body>
</html>
Таким образом, весь этот код будет отображаться в разделе div другого html файла. Проблема с моим кодом заключается в том, что jquery не работает, когда он отображается в div. Я попробовал это в jsfilddle, и код jquery работает хорошо.
и jsfiddle находится здесь: http://jsfiddle.net/k2QVV/
но когда я применяю его в PHP-коде. он не работает. что я делаю неправильно здесь?
Ваш код работает до отображения страницы, поэтому такие вещи, как:
inputs = $('input[type="number"]');
Не найдешь ничего.
Чтобы исправить это, заверните весь свой javascript, отличный от available
функции в готовом jQuery:
$( document ).ready(function() {
...
});