Назад в раздел E-mail

Форма заказа покупки онлайн (с количеством)
Скрипт не производит никаких проверок корректности вводимых данных. Если у вас нет доступа к CGI, то используйте приведенные в разделе "Email", а также в разделе "Безопасность и кодирование" этой справки, скрипты для определения корректности и полноты введенных данных, и которые вполне способны обезопасить Вас "от дурака".

Онлайновый каталог

Ф.И.О:
Email:                              
Код города и телефон:    
Номер кредитной карты:
Окончание:     
Отправить счет (кому, куда):
Отправить заказ (куда, кому):

 


Содержимое этой таблицы поместите между <HEAD> и </HEAD>

 

<script language="JavaScript">
<!--
// Code by Greg Galloway 1997

function createArray(size) {
for (var i=0; i < size; i++) {
this[i] = null }
return this
}

function Product(descrip, money) {
this.description = descrip;
this.price = money;
}

function Category(name) {
this.title = name;
this.product = new createArray(1);
this.product[0] = new Product("Пожалуйста, выберите продукт", 0.00);
}

var category = new createArray(1);

// STEP NUMBER ONE
// enter the color for rows of the table
// (either javascript name or hex code)
color1 = "tan";
color2 = "khaki";


category[1] = new Category("ТЕХНИКА");
category[1].product[1] = new Product("Телевизор", 2550);
category[1].product[2] = new Product("Пылесос", 30);

category[2] = new Category("АЛКОГОЛЬНЫЕ НАПИТКИ");
category[2].product[1] = new Product("Шампанское", 15.50);
category[2].product[2] = new Product("Коньяк", 39.95);

category[3] = new Category("ПЕЧАТНЫЕ ИЗДАНИЯ");
category[3].product[1] = new Product("Газета", .99);
category[3].product[2] = new Product("Детектив", 5.23);

category[4] = new Category("ДЕЛИКАТЕСЫ");
category[4].product[1] = new Product("Икра (200гр)", 12);
category[4].product[2] = new Product("Икра (250гр)", 13);

// ***** NO NEED TO CHANGE ANY CODE AFTER THIS COMMENT ***

function SetLengths() {
var k=1;
while(category[k] != null)
k++
category.length = k;
for (i=1; i<category.length; i++) {
var j=1;
while (category[i].product[j] != null)
j++;
category[i].product.length = j;
}
}

SetLengths();
function writeSelect(num) {
leng = 10;
options = new createArray(leng);
options[0] = 0;
options[1] = 1;
options[2] = 2;
options[3] = 3;
options[4] = 4;
options[5] = 5;
options[6] = 6;
options[7] = 7;
options[8] = 8;
options[9] = 9;

html_code = "";

html_code += 'quantity:<br><select size=1 name="quantity'+num+'" '
+ 'onChange="update(' + num + ')">';
for (o=0;o<leng;o++)
html_code += '<option value="'+options[o]+'"'
+ ((o==0) ? ' selected>':'>') + options[o];
html_code += '</select>';
return html_code;
}
function writeTableRow(i) {
document.write('<tr bgcolor="' + ((i%2 == 0) ? color1 : color2) + '">');
document.write('<td>' + category[i].title.toUpperCase() + ':<br>'
+ '<select size="1" name="menu' + i + '" onChange="update(' + i + ')">');
len = category[i].product.length;
for (j=0; j<len; j++) {
if (j != 0)
document.write('<option>' + category[i].product[j].description
+ ' - $' + fix(category[i].product[j].price) + '</option>');
else
document.write('<option selected value=" ">Пожалуйста, выберите продукт</option>');
}
document.write('</select></td><td valign=bottom>'
+ '<input type="text" value="0.00" name="price' + i + '" '
+ 'size=12 maxlength=12 onFocus="document.form1.price' + i + '.blur()">'
+ '</td><td valign=bottom>' + writeSelect(i) + '</td></tr>');
}

function writeTable() {
document.write('<table cellspacing=5 cellpadding=10 border=0>');
for (i=1; i<category.length; i++)
writeTableRow(i);
document.write('<tr bgcolor="' + ((category.length%2==0) ? color1 : color2)
+ '"><td align=right>ВСЕГО НА СУММУ: </td><td><input type="text" '
+ 'name="total" size=12 maxlength=12 value="0.00"></td></tr></table>');
}

function update(num) {
eval('selected = document.form1.menu' + num + '.selectedIndex;');
eval('q_selected = document.form1.quantity' + num + '.selectedIndex;');
eval('quant = document.form1.quantity' + num + '.options[q_selected].value;');
cost = fix(category[num].product[selected].price * quant);
eval('document.form1.price' + num + '.value = cost;');
var grand_total = 0;
for (i=1; i<category.length; i++)
eval('grand_total += parseFloat(document.form1.price' + i + '.value);');
document.form1.total.value = fix(grand_total);
}
function fix(num) {
string = "" + num;
if (string.indexOf('.') == -1)
return string + '.00';
seperation = string.length - string.indexOf('.');
if (seperation > 3)
return string.substring(0,string.length-seperation+3);
else if (seperation == 2)
return string + '0';
return string;
}

function validate_form() {
validity = true;
if (document.form1.shopper_name.value == "") {
alert('Введите Ваше имя!');
validity = false;
}
if (document.form1.email.value == "") {
if (confirm("Вы будете вводить email адрес?"))
valid = false;
else
document.form1.email.value = 'email адрес не введен';
}
if (document.form1.phone.value == "") {
alert('Вы должны ввести номер Вашего телефона!');
validity = false;
}
if (document.form1.credit_card_number.value == "") {
alert('Вы должны ввести номер кредитной карты!');
validity = false;
} else if (document.form1.expiration_date.value == "") {
alert('Вы должны ввести дату окончания действия кредитной карты!');
validity = false;
}
if (document.form1.bill.value == "") {
alert('Введите адрес для отправки счета!');
validity = false;
} else if (document.form1.mail.value == "") {
if (!confirm("Отправлять заказ по томуже адресу, что и счета?"))
validity = false;
else
document.form1.mail.value = 'тот же, что и адрес для счета';
}
if (validity){
alert("Спасибо за заказ!");
return true;
}
else{
return false;
}
}
// -->
</script>

 

Содержимое этой таблицы поместите между <BODY> и </BODY>

 

<center>
<table border=2 bgcolor="gray" align=center>
<tr><td align=center>
<font face="Arial, Helvetica, Geneva" size="+2" color="#FFFFFF"><b>Онлайновый
каталог</b></font>
<font size="3" color="#000000">
<br><br><!----БЕЛЫМ ЦВЕТОМ ВЫДЕЛЕН ВАШ АДРЕС--->
<form name="form1" method="post" action="mailto:nobody@nowhere.com ?SUBJECT=Заказ онлайн" enctype="text/plain" onsubmit="return validate_form()">
<script language="JavaScript">
writeTable();
</script>
<table cellspacing=0 cellpadding=5 bgcolor="tan">
<tr><td align=center>
Ф.И.О: <input type="text" name="shopper_name" size=59><br>
Email:&nbsp;&nbsp;&nbsp; <input type="text" size=44 name="email">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
Код города и телефон:&nbsp;&nbsp;&nbsp;&nbsp; <input type="text" size="20" name="phone"><br>
Номер кредитной карты: <input type="text" size="20" name="credit_card_number">
<br>Окончание: <input type="text" size="5" maxlength="5" name="expiration_date">&nbsp;&nbsp;&nbsp;&nbsp;
</td></tr>
<tr><td align=center>
Отправить счет (кому, куда):<br>
<textarea wrap=virtual rows=5 cols=40 name="bill"></textarea>
</td></tr><tr><td align=center>
Отправить заказ (куда, кому):<br>
<textarea wrap=virtual rows=5 cols=40 name="mail"></textarea>
</td></tr>
</table><br>
<input type="submit" name="submit" value="Отправить заказ">&nbsp
<input type="reset" value="Сброс"><br>
</form>
</font>
</td></tr></table>
</center>

Назад в раздел E-mail

Note. Для выделения используйте Ctrl+Click, для копирования Ctrl+C или меню после клика правой кнопкой мыши. Скопированные скрипты сначала поместите в любой текстовый редактор, например, в Блокнот, и только затем, скопировав вновь, вставляйте в код страницы.


Используются технологии uCoz