Есть форма:
<?php
session_start();
if (isset($_POST["submitdata"])){
$_SESSION['order_delivery'] = $_POST["order_delivery"];
$_SESSION['order_fio'] = $_POST["order_fio"];
$_SESSION['order_email'] = $_POST["order_email"];
$_SESSION['order_phone'] = $_POST["order_phone"];
$_SESSION['order_address'] = $_POST["order_address"];
$_SESSION['order_note'] = $_POST["order_note"];
header("Location: cart.php?action=completion");
} else {
$_SESSION['order_delivery'] = "";
$_SESSION['order_fio'] = "";
$_SESSION['order_email'] = "";
$_SESSION['order_phone'] = "";
$_SESSION['order_address'] = "";
$_SESSION['order_note'] = "";
}
$chck1="";
$chck2="";
$chck3="";
if ($_SESSION['order_delivery']=="По почте") $chck1 = "checked";
if ($_SESSION['order_delivery']=="Курьером") $chck2 = "checked";
if ($_SESSION['order_delivery']=="Самовывоз") $chck3 = "checked";
echo'
<h3 class="title-h3">Способы доставки:</h3>
<form method="post">
<ul id="info-radio">
<li>
<input type="radio" name="order_delivery" class="order_delivery" id="order_delivery1" value="По почте" '.$chck1.' />
<label class="label_delivery" for="order_delivery1">По почте</label>
</li>
<li>
<input type="radio" name="order_delivery" class="order_delivery" id="order_delivery2" value="Курьером" '.$chck2.' />
<label class="label_delivery" for="order_delivery2">Курьером</label>
</li>
<li>
<input type="radio" name="order_delivery" class="order_delivery" id="order_delivery3" value="Самовывоз" '.$chck3.' />
<label class="label_delivery" for="order_delivery3">Самовывоз</label>
</li>
</ul>
<h3 class="title-h3" >Информация для доставки:</h3>
<ul id="info-order">
<li><label for="order_fio"><span>*</span>ФИО</label><input type="text" name="order_fio" id="order_fio" value="'.$_SESSION["order_fio"].'" /><span class="order_span_style">Пример: Иванов Иван Иванович</span></li>
<li><label for="order_email"><span>*</span>E-mail</label><input type="text" name="order_email" id="order_email" value="'.$_SESSION["order_email"].'" /><span class="order_span_style">Пример: ivanov@mail.ru</span></li>
<li><label for="order_phone"><span>*</span>Телефон</label><input type="text" name="order_phone" id="order_phone" value="'.$_SESSION["order_phone"].'" /><span class="order_span_style" >Пример: 375 (44) 123-12-12</span></li>
<li><label class="order_label_style" for="order_address"><span>*</span>Адрес<br /> доставки</label><input type="text" name="order_address" id="order_address" value="'.$_SESSION["order_address"].'"><span order_span_style>Пример: г. Гомель, ул. Пушкина, д. 1, кв. 1</span></li>
<li><label class="order_label_style" for="order_note">Примечание</label><textarea name="order_note" >'.$_SESSION["order_note"].'</textarea><span order_span_style><br />Уточните информацию о заказе. <br/>Например, удобное время для звонка нашего менеджера</span></li>
</ul>
<p align="right" ><input type="submit" name="submitdata" id="confirm-button-next" value="Далее" /></p>
</form>
';
По ней идет валидация:
$(document).ready(function() {
// Шаблон проверки E-mail на правильность
function isValidEmailAddress(emailAddress){
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0.66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(emailAddress);
}
// Контактные данные
$('#confirm-button-next').click(function(e){
var order_fio = $("#order_fio").val();
var order_email = $("#order_email").val();
var order_phone = $("#order_phone").val();
var order_address = $("#order_address").val();
send_order_delivery = '0';
send_order_fio = '0';
send_order_email = '0';
send_order_phone = '0';
send_order_address = '0';
if (!$(".order_delivery").is(":checked")){
$(".label_delivery").css("color","#e07b7b");
send_order_delivery = '0';
} else { $(".label_delivery").css("color","black"); send_order_delivery = '1';}
// Проверка ФИО
if (order_fio == "" || order_fio.length > 50){
$("#order_fio").css("borderColor","#fdb6b6");
send_order_fio = '0';
} else { $("#order_fio").css("borderColor","#DBDBDB"); send_order_fio = '1';}
// Проверка Email
if (order_email == "" || isValidEmailAddress(order_email) == false){
$("#order_email").css("borderColor","#fdb6b6");
send_order_email='0';
} else { $("#order_email").css("borderColor","#DBDBDB"); send_order_email = '1'}
// Проверка телефона
if (order_phone == "" || order_phone.length > 50){
$("#order_phone").css("borderColor","#fdb6b6");
send_order_phone = '0';
} else { $("#order_phone").css("borderColor","#DBDBDB"); send_order_phone = '1';}
// Проверка адреса
if (order_address == "" || order_addres.length > 150){
$("#order_address").css("borderColor","#FDB6B6");
send_order_address = '0';
} else { $("#order_address").css("borderColor","#DBDBDB"); send_order_address = '1';}
// Глобальная проверка
if ((send_order_delivery == '1') && (send_order_fio == '1') && (send_order_email == '1') && (send_order_phone == "1") && (send_order_address == "1")){
// Отправляем форму
return true;
}
/*
console.log(send_order_delivery);
alert('f'+send_order_fio);
alert('e'+send_order_email);
alert('p'+send_order_phone);
alert('a'+send_order_address);
*/
return false;
e.preventDefault();
});
});
Когда поля пустые, а Radio все идет по плану. Но как пройдешь проверку Radio и введешь например в поле ФИО и АДРЕС что нибудь. То прерывание и глобальная проверка куда то исчезает и странице переходит на след. шаг.
return false;
e.preventDefault();
Ну а с чего бы ему работать? Строчки местами переставь.
Проблему решил костылями: 1. PHP
if (isset($_POST["submitdata"])){
$_SESSION['order_delivery'] = $_POST["order_delivery"];
$_SESSION['order_fio'] = $_POST["order_fio"];
$_SESSION['order_email'] = $_POST["order_email"];
$_SESSION['order_phone'] = $_POST["order_phone"];
$_SESSION['order_address'] = $_POST["order_address"];
$_SESSION['order_note'] = $_POST["order_note"];
if ($_POST["order_delivery"] != "" && $_POST["order_fio"] != "" && $_POST["order_email"] != "" && $_POST["order_phone"] != "" && $_POST["order_address"] != ""){
header("Location: cart.php?action=completion");
}
}
$(document).ready(function() {
// Шаблон проверки E-mail на правильность
function isValidEmailAddress(emailAddress){
var pattern = new RegExp('.+@.+\..+', 'i');//RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0.66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(emailAddress);
}
// Контактные данные
$('#confirm-button-next').click(function(e){
var order_fio = $("#order_fio").val();
var order_email = $("#order_email").val();
var order_phone = $("#order_phone").val();
var order_address = $("#order_address").val();
send_order_delivery = false;
send_order_fio = false;
send_order_email = false;
send_order_phone = false;
send_order_address = false;
if (!$(".order_delivery").is(":checked")){
$(".label_delivery").css("color","#e07b7b");
send_order_delivery = false;
} else { $(".label_delivery").css("color","black"); send_order_delivery = true;}
// Проверка ФИО
if (order_fio == "" || order_fio.length > 50){
$("#order_fio").css("borderColor","#fdb6b6");
send_order_fio = false;
} else { $("#order_fio").css("borderColor","#DBDBDB"); send_order_fio = true;}
// Проверка Email
if (order_email == "" || isValidEmailAddress(order_email) == false){
$("#order_email").css("borderColor","#fdb6b6");
send_order_email=false;
} else { $("#order_email").css("borderColor","#DBDBDB"); send_order_email = true}
// Проверка телефона
if (order_phone == "" || order_phone.length > 50){
$("#order_phone").css("borderColor","#fdb6b6");
send_order_phone = false;
} else { $("#order_phone").css("borderColor","#DBDBDB"); send_order_phone = true;}
// Проверка адреса
if (order_address == "" || order_address.length > 150){
$("#order_address").css("borderColor","#FDB6B6");
send_order_address = false;
} else { $("#order_address").css("borderColor","#DBDBDB"); send_order_address = true;}
// Глобальная проверка
if (send_order_address == true){
if (send_order_fio == true){
if (send_order_email == true){
if (send_order_phone == true){
if (send_order_delivery == true){
return true;
}
}
}
}
}
e.preventDefault();
return false;
});
});
Правда если ввести правильный Email при выводе в Alert(isValidEmailAddress(order_email)) все равно отправит False, но отправка формы проходит. Я не пока не особо знаком с JS и Магией PHP. Просветите в чем фокус :)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Что лучше использовать при работе с файлами, Что лучше, SplFileObject или fopen и тд
Я совсем новичек в php, хотел сделать простую страницу регистрация\авторизацияРегистрацию сделал без проблем, а вот с авторизацией вопрос
В моем приложении появляется слишком много однотипных маршрутовРазницы между ними практически нет, кроме названия контроллера и самого...