Auf der Website, an der ich gerade arbeite, habe ich eine Liste (Cart-Idee) erstellt, auf der Kunden Produkte platzieren können. Es arbeitet mit GET-Methode + eine Sitzung, der Code für die Herstellung der Sitzung ist wie folgt:SESSION GET Informationen im POST-Kontaktformular zusammen mit den POST-Feldern senden
`<?php session_start();
require("dbconnect.php");
?>
<?php
if(!isset($_SESSION['cart'])) {
$cart = array();
$_SESSION['cart'] = $cart;
}
if(isset($_GET['action']) && $_GET['action']=="add"){
$id=intval($_GET['id']);
if(in_array($id, $_SESSION['cart'])){
if (($key = array_search($id, $_SESSION['cart'] !== false))){
unset($_SESSION['cart'][$key]);
}
}
else {
array_push($_SESSION['cart'],$id);
}
}
if(isset($_GET['action']) && $_GET['action']=="delete"){
$id = intval($_GET['id']);
if (in_array($id, $_SESSION['cart'])){
$key = array_search($id, $_SESSION['cart']);
unset($_SESSION['cart'][$key]);
}
}
?>
Nichts Besonderes, nur einen regelmäßigen Wagen in einer Sitzung mit einem Array, wo ich die all einzigartigen Produktcodes gestellt Erinnere dich daran, was auf der Liste steht. Wenn Kunden nun auf die Seite gehen, auf der sie die Produktliste senden können, können sie auch auswählen, wie viele Produkte sie jeweils haben möchten. Sie müssen eine Zahl eingeben, und wenn sie fertig sind, klicken sie auf den Button "berechnen (berekenen in meiner Sprache)" und sie erhalten den Zwischensummenpreis aller Produkte, die Mehrwertsteuer und den Gesamtpreis. Ich möchte jedoch, dass der Kunde seine persönlichen Daten sowie die Liste und die zu sendenden Beträge per E-Mail eingeben kann. Ich habe früher selbst erstellte PHP-Formulare gemacht, aber jetzt bleibe ich stecken. Ich verwende GET für die Bestellliste, aber ich verwende immer ein POST-Formular für meine Kontaktformulare. Wie kann ich einen Button erstellen, der die Liste plus die Beträge plus die Eingabe der Kontaktformularfelder an mich sendet? In diesem Moment habe ich es wie folgt versucht (und viele andere Wege, aber alles ist bisher gescheitert).
<main>
<div class="main-center">
<div class="offerte-container">
<form action="" method="get" value="offertelijst">
<ul class="offerte-list">
<?php
$per_page = 9;
$args = array(
'post_type'=> 'wpcproduct',
'order' => 'ASC',
'orderby' => 'menu_order',
'posts_per_page' => $per_page
);
$products = new WP_Query($args);
?>
<?php
while($products->have_posts()): $products->the_post();
$id = get_the_ID();
$title = get_the_title();
$permalink = get_permalink();
$price = get_post_meta(get_the_id(),'wpc_product_price',true);
$product_id = get_post_meta(get_the_id(), 'product_ID', true);
if(in_array($id, $_SESSION['cart'])){
echo '<li class="wpc-product-item">';
echo '<a href="index.php?action=delete&id=' .$id. '">Verwijder </a>';
echo '<input alt="hoeveelheid" maxlengt="2" value="' .$_GET["amount$id"]. '" min="1" type="number" max="99" name="amount'.$id.'" size="3" required> </input>';
echo '<a href="'. $permalink .'"><div class="item-title"> ' .$title. ' </div></a>';
echo '<a href="'. $permalink .'"><div class="item-take"> <img width="25px" src="http://bgc-testomgeving.nl/sem/wp-content/themes/sem/images/pijltje.png" /> </div></a>';
echo '<a href="'. $permalink .'"><div class="item-nr"> '.$product_id. '</div></a>';
if((isset($_GET["amount$id"]) && $_GET["amount$id"] == 1) || $_GET["amount$id"] == ""){
if (is_numeric($price) && (floor($price) == $price)) {
echo '<div class="item-price"> €' .number_format ($price , 0 , "," , "."). ',- </div>';
}
else {
echo '<div class="item-price"> €' .$price. '</div>';
}
echo '</li>';
}
else if(isset($_GET["amount$id"]) && floatval($_GET["amount$id"]) > 1){
changeFormat($price);
$priceTotal = number_format($price * floatval($_GET["amount$id"]), 2);
if (is_numeric($priceTotal) && (floor($priceTotal) == $priceTotal)) {
echo '<div class="item-price"> €' .$priceTotal . ',- </div>';
}
else {
echo '<div class="item-price"> €' .$priceTotal . '</div>';
}
echo '</li>';
}}
endwhile;
?>
</ul>
<input type="submit" value="Bereken"> </input>
</form>
<div class="totalprice">
<?php
(float)$total = 0;
while($products->have_posts()): $products->the_post(); {
$id = get_the_ID();
$title = get_the_title();
$permalink = get_permalink();
$price = get_post_meta(get_the_id(),'wpc_product_price',true);
$product_id = get_post_meta(get_the_id(), 'product_ID', true);
if(in_array($id, $_SESSION['cart'])){
if (is_numeric($price) && (floor($price) == $price)) {
$price = number_format($price, 2);
}
else {
$price = str_replace(',', '.', $price);
}
$total += (floatval($price) * floatval($_GET["amount$id"]));
}}
endwhile;
(String)$total;
number_format($total, 2);
$totalDecimal = str_replace('.', ',', $total);
echo 'Subtotaal: €' .$totalDecimal. '<br />';
echo 'BTW: €' . str_replace('.',',', number_format($total * 0.21,2)). '<br />';
echo 'Totaal: €' . str_replace('.',',', number_format($total * 1.21,2));
function changeFormat($var) {
if(is_numeric($var) && (floor($var) == $var)){
return number_format($var, 0) + ',-';
}
else {
if (is_numeric($var)) {
return number_format($var, 2, ',', '.');
}
else if (is_string ($var)){
return str_replace(',', '.', $var);
}
else {
echo "What the hell is dit voor een formaat?";
}
}}
?>
</div>
</div>
</div>
</main>
Die calculate-Funktion und die Bestellliste arbeiten alle in Ordnung, und ich bin in der Lage eine Standard-POST Form als Kontaktformular zu machen, aber ich kann es nicht schaffen dies getan. Ich möchte den Button 'senden', um die Liste plus die angegebenen Beträge pro Produkt und die ausgefüllten Kontaktformulare zu senden.
Die URL für dieses Projekt ist: http://www.bgc-testomgeving.nl/sem Unterhalb der http://www.bgc-testomgeving.nl/sem/offertelijst/ Seite die Kontaktform aber jedes Mal sein soll ich versuchen, dies ich Liste zerstören meine beste Ordnung zu bauen.