Я работаю с DreamWeaver, PHP, MySQL, JQuery Mobile и JavaScript. Я показываю записи MySQL в таблице, и каждая строка имеет ссылку редактирования, чтобы открыть файл записи обновления. Используя JavaScript в файле записи вставки, я могу вычислять значения полей с помощью функции JavaScript, но теперь я пытаюсь сделать то же самое в файле записи обновления.
Проблема, которую я имею сейчас, заключается в том, что во втором файле вызывается функция JavaScript, но любой расчет выполнен.
Единственное отличие, которое я вижу там, это то, что во втором файле (запись обновления) поля уже имеют значение, но я не уверен, является ли это источником проблемы, но, я думаю, нет, тогда пользователь может вручную изменить значения,
Это код JavaScript для обоих файлов:
<script type="text/javascript">
function calculatetotal(){
alert("I am an alert box!");
var mat = 0;
mat = parseFloat(document.getElementById('mat').value);
var mo = 0;
mo = parseFloat(document.getElementById('mo').value);
var uti = 0;
uti = parseFloat(document.getElementById('uti').value);
var ind = 0;
ind = parseFloat(document.getElementById('ind').value);
var poriva = 0;
poriva = parseFloat(document.getElementById('poriva').value);
var totaliva =0;
var totcliente =0;
totcliente = (mat+mo+uti+ind).toFixed(2);;
var totaliva = ((poriva)/100)*totcliente;
document.getElementById('totCliente').value = (mat+mo+uti+ind).toFixed(2);
document.getElementById('totaliva').value = totaliva;
document.getElementById('totalpre').value= parseFloat(totaliva)+parseFloat(totcliente);
}
</script>
Мне нужна ваша помощь, чтобы понять, почему она работает над файлом записи вставки, а не в файле записи обновления.
Это код для части формы в HTML из части записи обновления:
<form method="post" name="form1" id="form1" data-ajax="false" action="<?php echo $editFormAction; ?>">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">Obra:</td>
<td><select name="int_obra">
<?php
do {
?>
<option value="<?php echo $row_Recordset2['idObra']?>" <?php if (!(strcmp($row_Recordset2['idObra'], htmlentities($row_Recordset1['int_obra'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>><?php echo $row_Recordset2['nombreObra']?></option>
<?php
} while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));
?>
</select></td>
<tr>
<tr valign="baseline">
<td nowrap align="right">Materiales:</td>
<td><input type="text" name="dbl_materiales" value="<?php echo htmlentities($row_Recordset1['dbl_materiales'], ENT_COMPAT, 'UTF-8'); ?>" size="32" id="mat" onChange="calculatetotal()"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Mano de Obra:</td>
<td><input type="text" name="dbl_mano_de_obra" value="<?php echo htmlentities($row_Recordset1['dbl_mano_de_obra'], ENT_COMPAT, 'UTF-8'); ?>" size="32" id="mo" onChange="calculatetotal()"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Utilidad:</td>
<td><input type="text" name="dbl_utilidad" value="<?php echo htmlentities($row_Recordset1['dbl_utilidad'], ENT_COMPAT, 'UTF-8'); ?>" size="32" id="uti" onChange="calculatetotal()"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Indirectos:</td>
<td><input type="text" name="dbl_indirectos" value="<?php echo htmlentities($row_Recordset1['dbl_indirectos'], ENT_COMPAT, 'UTF-8'); ?>" id="ind" onChange="calculatetotal()"size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Pre. aprobado por cliente:</td>
<td><input name="dbl_total" type="text" id="totcliente" value="<?php echo htmlentities($row_Recordset1['dbl_total'], ENT_COMPAT, 'UTF-8'); ?>" size="32" readonly></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">% IVA:</td>
<td><input type="text" name="dbl_porcentaje_iva" value="<?php echo htmlentities($row_Recordset1['dbl_porcentaje_iva'], ENT_COMPAT, 'UTF-8'); ?>" size="32" id="poriva" onChange="calculatetotal()"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Total IVA:</td>
<td><input name="dbl_total_iva" type="text" value="<?php echo htmlentities($row_Recordset1['dbl_total_iva'], ENT_COMPAT, 'UTF-8'); ?>" size="32" id="totaliva" readonly></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">TOTAL DEL PRESUPUESTO:</td>
<td><strong>
<input name="dbl_total_presupuesto" type="text" value="<?php echo htmlentities($row_Recordset1['dbl_total_presupuesto'], ENT_COMPAT, 'UTF-8'); ?>" size="32" id="totalpre" readonly>
</strong></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">MONEDA:</td>
<td><select name="int_moneda">
<option value="1" <?php if (!(strcmp(1, htmlentities($row_Recordset1['int_moneda'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>PESO MXN</option>
<option value="2" <?php if (!(strcmp(2, htmlentities($row_Recordset1['int_moneda'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>>USD</option>
</select></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"> </td>
<td><input type="submit" value="Actualizar Presupuesto"></td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form1">
<input type="hidden" name="idPresupuesto" value="<?php echo $row_Recordset1['idPresupuesto']; ?>">
</form>
Я обновил код JavaScript, и теперь он работает так, как ожидалось. Спасибо за помощь.
<script type="text/javascript">
function calculatetotal(){
var mat = 0;
mat = parseFloat(document.getElementById('mat').value);
var mo = 0;
mo = parseFloat(document.getElementById('mo').value);
var uti = 0;
uti = parseFloat(document.getElementById('uti').value);
var ind = 0;
ind = parseFloat(document.getElementById('ind').value);
var poriva = 0;
poriva = parseFloat(document.getElementById('poriva').value);
totcliente = (mat+mo+uti+ind).toFixed(2);
var totaliva = parseFloat(((poriva)/100)*totcliente);
document.getElementById('totcliente').value = totcliente;
document.getElementById('totaliva').value = totaliva.toFixed(2);
document.getElementById('totalpre').value = (parseFloat(totcliente)+parseFloat(totaliva)).toFixed(2);
}
</script>
добавьте свой скрипт в конец страницы juste перед </body>
и вызовите функцию:
<script type="text/javascript">
function calculatetotal(){
alert("I am an alert box!");
var mat = 0;
mat = parseFloat(document.getElementById('mat').value);
var mo = 0;
mo = parseFloat(document.getElementById('mo').value);
var uti = 0;
uti = parseFloat(document.getElementById('uti').value);
var ind = 0;
ind = parseFloat(document.getElementById('ind').value);
var poriva = 0;
poriva = parseFloat(document.getElementById('poriva').value);
var totaliva =0;
var totcliente =0;
totcliente = (mat+mo+uti+ind).toFixed(2);;
var totaliva = ((poriva)/100)*totcliente;
document.getElementById('totCliente').value = (mat+mo+uti+ind).toFixed(2);
document.getElementById('totaliva').value = totaliva;
document.getElementById('totalpre').value= parseFloat(totaliva)+parseFloat(totcliente);
}
calculatetotal();
</script>
</body>
</html>
<script>calculatetotal();</script>
после внедрения скрипта