Я создаю форму для биллинга, и у меня была фатальная ошибка в total_amt_array. Кроме того, как я разбираю массив элементов в базе данных? Форма находится в Create Invoice, а invoicesubmit - там, где он добавляет все массивы в базу данных. Любой может объяснить мне, почему я не могу сделать общую сумму суммы дисконта, количества и количества.Проблема с формулой массива и массивом разбора в базу данных
Кроме того, у кого-нибудь есть более простой способ вычислить все total_amt_array. Я обыскал stackoverflow, а другие нашел окончательную общую сумму, добавив весь столбец затрат, чтобы получить окончательную общую стоимость.
Создание счета-фактуры
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var count = 0;
function addTextArea(){
count= count+1;
var div = document.getElementById('name');
div.innerHTML += "<div> <input type='text' name='name[]' value='' "+"id=name"+count+"> </div>";
div.innerHTML += "\n<br />";
var div = document.getElementById('quantity');
div.innerHTML += "<div><input type='text' name='quantity[]' value ='' "+"id=quantity"+count+"></div>";
div.innerHTML += "\n<br />";
var div = document.getElementById('amount');
div.innerHTML += "<div><input type='text' name='amount[]' value ='' "+"id=amount"+count+"></div>";
div.innerHTML += "\n<br />";
var div = document.getElementById('discount');
div.innerHTML += "<div><input type='text' name='discount[]' value ='' "+"id=discount"+count+"></div>";
div.innerHTML += "\n<br />";
}
function removeTextArea(){
document.getElementById("name"+count).remove();
document.getElementById("quantity"+count).remove();
document.getElementById("amount"+count).remove();
document.getElementById("discount"+count).remove();
count = count-1;
}
</script>
</head>
<body>
<form action="invoicesubmit.php" method="POST">
<?php
echo "<table border='2'>\n";
echo "<tr>\n";
echo "<th>Description</th>\n";
echo "<th>Quantity</th>\n";
echo "<th>Amount($)</th>\n";
echo "<th>Discount(%)</th>\n";
echo "</tr>";
echo "<tr>";
echo "<td>"?><input type='text' size="50" name='name[]' value='Examination and Consultation' readonly/><?php "</td>";
echo "<td>"?><input type='text' size="50" name='quantity[]' value='' /><?php "</td>";
echo "<td>"?><input type='text' size="50" name='amount[]' value='' /><?php "</td>";
echo "<td>"?><input type='text' size="50" name='discount[]' value='' /><?php "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>"?><div id="name"></div> <?php "</td>";
echo "<td>"?><div id="quantity"></div> <?php "</td>";
echo "<td>"?><div id="amount"></div> <?php "</td>";
echo "<td>"?><div id="discount"></div> <?php "</td>";
echo "</tr>";
?>
<br />
<input type="button" value="Add Description" onClick="addTextArea();">
<input type="button" value="Remove Description" onClick="removeTextArea();">
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
invoicesubmit
<?php require_once("includes/session.php"); ?>
<?php require_once("includes/db_connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php require_once("includes/validation_function.php"); ?>
<?php
if (isset($_POST['submit'])) {
// Process the form
$name_array = $_POST['name'];
$quantity_array = $_POST['quantity'];
$amount_array = $_POST['amount'];
$discount_array = $_POST['discount'];
$total_amt_array = ($amount_array - ($amount_array * ($discount_array/ 100))) * $quantity_array ;
for ($i =0; $i < count($name_array); $i++) {
$name = $name_array[$i];
$quantity = $quantity_array[$i];
$amount = $amount_array[$i];
$discount = $discount_array[$i];
$total_amt = $total_amt_array[$i];
echo $name;
echo "<br />";
echo $quantity;
echo "<br />";
echo $amount;
echo "<br />";
echo $discount;
echo "<br />";
echo $total_amt;
}
}
/*
//validations
$required_fields = array("name", "quantity", "amount", "discount");
validate_presences($required_fields);
$fields_with_max_lengths = array("name" => 200);
validate_max_lengths($fields_with_max_lengths);
if (!empty($errors)) {
$_SESSION["errors"] = $errors;
redirect_to("create_invoice.php");
}*/
/*
// 2. Perform database query
$query = "INSERT INTO invoicesub (";
$query .= " description, quantity, amount, discount, total";
$query .= ") VALUES (";
$query .= " '{$name}', '{$quantity}', '{$amount}', '{$discount}', '{$total}'";
$query .= ")";
$result = mysqli_query($connection, $query);
if ($result) {
// Success
$_SESSION["message"] = "Subject created.";
redirect_to("confirm_invoice.php");
}
else {
// Failure
$_SESSION["message"] = "Subject creation failed.";
redirect_to("create_invoice.php");
}
} else {
// This is probably a GET request
redirect_to("create_invoice.php");
} */
?>
<?php
if (isset($connection)) { mysqli_close($connection); }
?>
Хорошо, любой способ формирования формулы для total_amt без использования массивов? – user3300482