SimpleCart (js), получить некоторую информацию перед оформлением заказа

#php #javascript #post #input #null

#php #javascript #Публикация #ввод #null

Вопрос:

Я загрузил SimpleCart (js) (http://simplecartjs.com /) и я смог оформить заказ по электронной почте, но я хочу получить некоторую информацию от покупателя перед выпиской.

Вот как далеко я продвинулся:

Форма в checkout.php:

 <form action="sendjs.php" name="form" method="post">
    <input placeholder="Namn" type="text" name="namn"  value="Namn" id="namn" />
    <input placeholder="Mobilnummer" type="text" name="telefon" value="Telefon" id="telefon" />
<a href="javascript:void(0);" onclick="javascript:Bestall();" class="simpleCart_checkout">
Beställ</a>
</form>
  

Javascript:

 me.emailCheckout = function Bestall() {    

    itemsString = "";
    for( var current in me.items ){ 
        var item = me.items[current];
        itemsString  = item.quantity   " stn"   item.name   "n Pris: "   item.price   " kr/st nn";
    }


    namn  = " ";
    telefon  = " ";

    me.total  = ""   " KR"

    var form = document.createElement("form");
    form.style.display = "none";
    form.method = "POST";
    form.action = "sendjs.php";
    form.acceptCharset = "ISO-8859-1";
    form.appendChild(me.createHiddenElement("jcitems", itemsString));
    form.appendChild(me.createHiddenElement("jctotal", me.total));
    form.appendChild(me.createHiddenElement("namn", namn));
    form.appendChild(me.createHiddenElement("telefon", telefon));
    document.body.appendChild(form);
    form.submit();
    document.form.submit();
    document.body.removeChild(form);
    }

    me.customCheckout = function() {
        return;
    };
  

sendjs.php:

 <?php
    include 'simpleCart.js';

    $to      = 'jennifer.nilsson@hotellgruppen.se';
    $subject = 'Beställning';
    $jcitems = $_POST['jcitems'] .
               " n SUMMA: " . $_POST['jctotal'] .
               " nn Namn: " . $_POST['namn'] .
               " n Telefon: " . $_POST['telefon'] .

               " nn IP: " . $_SERVER['REMOTE_ADDR'] .
               " n Datum: " . date("Y-m-d") .
               " n Tid: " . date("H:i:s") ;

    $headers = 'From: Bestallning@Mobil' . "rn" .
               'Reply-To: Bestallning@Mobil' . "rn" .
               'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $jcitems, $headers);
    /*Clearing the cart info after succesfull order is made*/
    setcookie ("simpleCart", "", time() - 3600);
    Header('Location: tack.html');

?>
  

Когда я получаю электронное письмо, в нем отображается «[object HTMLInputElement]», где должны были отображаться значения «namn» и «telefon», затем я поискал в Google и нашел это:

    <script type="text/javascript" charset="utf-8">
    var namn = <?php echo json_encode($namn); ?>;
    </script> 
  

И я вставил этот код в checkout.php но затем вместо этого отображается «null».

Почему он не собирает информацию из формы? Все остальное работает отлично, за исключением «namn» и «telefon», которые я пытаюсь получить из формы. Спасибо за вашу помощь!

Редактировать:

Нашел ответ, я думаю:

 namn = document.form.namn.value;
telefon = document.form.telefon.value;
  

Изменил это в js, и, похоже, это работает! Почему я не подумал об этом раньше? 😉