私のウェブサイトには2つのフォームがあります。最初の形式は静的(一般的な情報)です。複数のプロジェクトを挿入したい場合は、2番目のプロジェクト情報(プロジェクト情報)を複製することができます(jQueryを使用)。複数のプロジェクトが送信された場合は、最後のプロジェクトのみがデータベースに挿入されます。どのように動作するはずではありません。すべてのプロジェクトフォームを提出する必要があります。フォームは、(2つのプロジェクトで)次のようになります。複数のフォームを同じテーブルに挿入する - 最後のフォームのみが挿入されます
PHPコード:
<?php include './includes/database.php';
if(isset($_POST['submit'])){
$company_name = mysqli_real_escape_string($connection, $_POST['company_name']);
$contact_name = mysqli_real_escape_string($connection, $_POST['contact_name']);
$email_address = mysqli_real_escape_string($connection, $_POST['email_address']);
$phone_number = mysqli_real_escape_string($connection, $_POST['phone_number']);
$project_name = mysqli_real_escape_string($connection, $_POST['project_name']);
$house_amount = mysqli_real_escape_string($connection, $_POST['house_amount']);
$people_type = mysqli_real_escape_string($connection, $_POST['people_type']);
$delivery_date = mysqli_real_escape_string($connection, $_POST['delivery_date']);
//Set date
$signup_date = date('Y-m-d', time());
//Lowercase email
$email_address = strtolower($email_address);
mysqli_autocommit($connection, false);
$flag = true;
$query = "INSERT INTO developers_prospects (signup_date, company_name, contact_name, email_address, phone_number)
VALUES ('$signup_date','$company_name','$contact_name','$email_address','$phone_number')";
$result = mysqli_query($connection, $query);
if (!$result) {
$flag = false;
echo "Error details: " . mysqli_error($connection) . ".";
}
$query1 = "INSERT INTO developers_prospects_projects2 (company_name, project_name, house_amount, people_type, delivery_date)
VALUES ('$company_name','$project_name','$house_amount','$people_type','$delivery_date')";
$result = mysqli_query($connection, $query1);
if (!$result) {
$flag = false;
echo "Error details: " . mysqli_error($connection) . ".";
}
if ($flag) {
mysqli_commit($connection);
$success = "Bedankt $contact_name! We hebben je gegevens in goede orde ontvangen.";
header ("Location: index.php?success=".urlencode($success));
} else {
mysqli_rollback($connection);
$error = "Oeps. Sorry $contact_name! Er ging iets mis.";
header ("Location: index.php?error=".urlencode($error));
}
mysqli_close($connection);
}
?>
とコードのjQueryの一部:
<script>
$(document).ready(function() {
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".developers-signup-form-container"); //Fields wrapper
var add_button = $(".developers-signup-form-add"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$len= $(".developers-signup-form-container").children("div").length+1;
$(wrapper).append("<div class='developers-signup-form-wrapper'><a href='#' class='developers-signup-remove-field'>X Sluiten</a><label class='developers-signup-form-label'>Projectnaam:</label><input class='developers-signup-form-field' type='text' name='project_name' ><label class='developers-signup-form-label'>Aantal woningen:</label><input class='developers-signup-form-field' type='text' name='house_amount' ><label class='developers-signup-form-label'>Type bewoners:</label><input class='developers-signup-form-field' type='text' name='people_type' ><label class='developers-signup-form-label'>Gewenste afleverdatum:</label><input class='developers-signup-form-field' type='text' name='delivery_date' ></div>");} });
$(wrapper).on("click",".developers-signup-remove-field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('div').remove(); x--;
}) });
</script>
私が間違っているのは何?あなたの答えを楽しみにしています。
こんにちはミカルを。私はPHPスクリプトにforeachループを追加しました($ query1部分の後、if-submit-statement内(これが正しい場所です)、データベースに挿入するための新しいクエリを追加しました。また、jQuery私は入力を(プロジェクト名の例)に変更しました: 'name = 'project [" + $ len + "] [project_name]'。$ lenはコードの先頭に宣言されています。最初のプロジェクトフォーム(これは私の最初の試行とは異なります)、2番目/ 3番目/ 4番目の/ etcフォームを挿入しません。 – Nicholas
私のforeachステートメントは次のようになります: 'foreach($ _POST ['projects'] as $ $ project ['house_amount']; $ project_name = $ project ['project_name']; $ house_amount = $ project ['house_amount']; $ people_type = $ project ['people_type']; $ delivery_date = $ project [ 'delivery_date']; 休憩。 ' – Nicholas
ループ内に' break'があるので、2番目/ 3番目などを挿入しません。 'break'の代わりにプロジェクト用の挿入ロジックを置いてください –