<div class="container">
<div class="row text-center">
<H1 class="mb-3">Заказ пиццы</H1>
<form action="" method="post" name="ourf">
<div class="form-group">
<select id="single" class="form-control asd" name="search" >
<option value="" disabled selected style='display:none;'>Выберите пиццу</option>
<?php foreach($article as $object): ?>
<option value ="<?=$object['price']?>"><?=$object['name']?></option>
<?php endforeach ?>
</select>
<select class="form asd" id="single1" name="search" >
<option value="" disabled selected style='display:none;'>Выберите размер</option>
<?php foreach($article1 as $object): ?>
<option value ="<?=$object['price']?>"><?=$object['size']?></option>
<?php endforeach ?>
</select>
<select id="single2" class="form asd" name="search" >
<option value="" disabled selected style='display:none;'>Выберите пиццу</option>
<?php foreach($article2 as $object): ?>
<option value ="<?=$object['price']?>"><?=$object['name']?></option>
<?php endforeach ?>
</select>
</div>
</form>
</div>
</div>
<div id="result"></div>
<input type="submit" id="target" value="Отправить" name="search1">
let servResponse=document.querySelector('#response');
document.forms.ourForm.onsubmit=function (e) {
e.preventDefault();
let userInput=document.forms.ourForm.ourForm_inp.value;
let userInput1=document.forms.ourForm.ourForm_inp1.value;
let userInput2=document.forms.ourForm.ourForm_inp2.value;
console.log(userInput)
let xhr= new XMLHttpRequest();
xhr.open("POST","mysqli.php");
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange=function (){
if (xhr.readyState===4 && xhr.status===200){
servResponse.textContent=xhr.responseText;
}
}
xhr.send('ourForm_inp=' + userInput+userInput1);
};
Мог бы подсказать как его переделать под FormData?
..............
let data = new FormData( document.querySelector('form'));
data.append( 'discount', 'Не забудь про скидку' ); // <--
let xhr= new XMLHttpRequest();
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange=function (){
if (xhr.readyState===4 && xhr.status===200){
servResponse.textContent=xhr.responseText;
}
}
XHR.open( 'POST', 'mysqli.php' );
XHR.send( data );
...................if(isset($_POST['discount']) && $_POST['discount'] !=='') {
$order_price = $price - $discount;
}
let data = new FormData( document.querySelector('form'));
xhr.open( 'POST', 'mysqli.php' );
xhr.send( data );
let servResponse=document.querySelector('#response');
document.forms.ourForm.onsubmit=function (e) {
e.preventDefault();
let data = new FormData(document.querySelector("form"))
console.log(data)
let xhr= new XMLHttpRequest();
xhr.open("POST","mysqli.php");
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange=function (){
if (xhr.readyState===4 && xhr.status===200){
servResponse.textContent=xhr.responseText;
}
}
xhr.send(data);
};
$(document).ready(function() {
$('form').submit(function(e) {
e.preventDefault();
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data: new FormData(this),
contentType: false,
cache: false,
processData: false,
success: function(data) {
$('#title').html('Ваш заказ <br>'+data+'</p>');
},
});
});
});<?php
$inp=$_POST['title'];
$inp1=$_POST['title1'];
$inp2=$_POST['title2'];
echo $inp;?>
<?php echo $inp1;?>
<?php echo $inp2;?>
Подход к реализации может измениться. Я не уверен, что вам можно, да и нужно ли, сводиться к цене во время заказа. Конечно дело каждого, но я бы не стал.
Цена, как понимаю, здесь только для информации клиента нужна, но никак не для выбора конкретного товара.
разделить на 3 части(т.к. на сервер приходит и обрабатывается 3 значения)
$json = [];
if (/условие/) {
$json['success'] = 'ok';
$json['title'] = $inp;
$json['text'] = $inp1;
} else {
$json['redirect'] = 'home.php';
}
echo json_encode($json);type: 'post',
data: data,
dataType: 'json',
contentType: false,
processData: false,
cache: false,
success: function(json) {
if (json['success']) {
$('#title').html($json['title']);
$('#text').html($json['text']);
}
}
$('form[name="ourf"]').submit(function(e) {
e.preventDefault();
var
form = $(this),
select1 = form.find('select:first-child').val(),
select2 = form.find('select:nth-child(2)').val(),
select3 = form.find('select:last-child').val();
$.post(document.location.href, {action: 'selectsPost', select1: select1, select2: select2, select3: select3},
function(data) {
//тут обработка ответа
console.log(data);
}
);
});
$(document).ready(function() {
$('form').submit(function(e) {
e.preventDefault();
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data: new FormData(this),
contentType: false,
cache: false,
processData: false,
success: function(data) {
$('#title').html('Ваш заказ <br>'+data+'</p>');
},
});
});
});<?php
$inp=$_POST['title'];
$inp1=$_POST['title1'];
$inp2=$_POST['title2'];
echo $inp;?>
<?php echo $inp1;?>
<?php echo $inp2;?>
$inp = array();
$inp['s1']=$_POST['title'];
$inp['s2']=$_POST['title1'];
$inp['s3']=$_POST['title2'];
die(json_encode($inp));success: function(data) {
data = JSON.parse(data, true);
//теперь варианты доступны как data.s1, data.s2, data.s3
//например
$('#title').html('Ваш заказ: '+data.s1+', '+data.s2+', '+data.s3+''); <select id="single" class="form-control asd" name="search" >
<option value="" disabled selected style='display:none;'>Выберите пиццу</option>
<?php foreach($article as $object): ?>
<option value ="<?=$object['price']?>"><?=$object['name']?></option>
<?php endforeach ?>
</select>
select1.find( "option:selected" ).text();