|
|
|
|
|
для: Dizels
(14.07.2009 в 00:39)
| | >И вот здесь как раз и наступает вопрос - как получить id только что добавленной записи в таблицу.
в поиск. Тема разжевана в кашу. | |
|
|
|
|
|
|
|
для: Dizels
(14.07.2009 в 00:53)
| | А слова $_SESSION Вы не заметили? | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2009 в 00:44)
| | Дело в том, что изначально я не планирую на данный момент делать регистрацию и т.д., так как теоретически - продаваться будет только 1 товар. | |
|
|
|
|
|
|
|
для: Dizels
(14.07.2009 в 00:39)
| | Можно же сперва проверить, что заказ принадлежит именно этому посетителю ($_SESSION, user_id и т.п.). | |
|
|
|
|
|
|
|
для: Dizels
(14.07.2009 в 00:07)
| | Если понадобится вариант использования AJAX:
// эта функция подгатавливает асинхронный запрос AJAX (для большинства браузеров)
// пригодится если вы часто используете AJAX
function prepareRequest() {
var http_request = false;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {}
} else if (window.ActiveXObject) {
try {http_request = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e) {try {http_request = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) {}}
}
if (!http_request) {alert('error'); return false;}
return http_request;
}
// ваша функция которая будет вызываться при изменении в форме
function calcPrise(form) {
//Эта переменная должна содержать переменные в виде "&variable=value", например
var postvar = "&kolvo=2&oplata=pay1&dostavka=avia"; // и т.д. перечисляете все переменные которые нужно передать серверу
// их значения берете из формы "form"
var xmlHttp = prepareRequest(); //создаем новый запрос
xmlHttp.open("POST", "/buy.php", true); // Открыть соединение с сервером
// ставим заголовок, указывающий тип запроса
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(postvar); // Передаем запрос
xmlHttp.onreadystatechange = function () { // Установить функцию для сервера, которая выполнится после его ответа
if (xmlHttp.readyState == 4) {
var answer = xmlHttp.responseText; // теперь эта переменныя содержит ответ от сервера
// осталось только вставить этот ответ в нужное место страницы c помощью функции innerHTML
}
}
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(13.07.2009 в 23:35)
| | В общем пока сделал с перезагрузкой страницы. Появился еще один вопрос, вернее даже 2 вопроса:
После оформления заказа я хочу, чтобы выводилась краткая информация по нему, а именно: итоговая сумма, адрес доставки и т.д.
Для этого в файле zakaz.php после успешного добавления данных в БД делаю перенаправление на страницу о заказе:
if(mysql_query($query))
{
// Осуществляем автоматический переход на страницу с данными о заказе
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=rezult.php?id'>
</HEAD>";
}
|
И вот здесь как раз и наступает вопрос - как получить id только что добавленной записи в таблицу.
И второй вопрос вытекает из первого:
как можно иначе это организовать? не нравится то, что в строку id можно подставить любой номер и таким образом узнать данные о любом заказе. А это я думаю не очень хорошо) | |
|
|
|
|
|
|
|
для: Dizels
(14.07.2009 в 00:07)
| |
<html>
<head>
</head>
<body>
<script>
function recalc1(x)
{
var e = x.elements;
var qty = parseInt(e.kolvo.value);
var discount = (100.0-( e.money[0].checked*2
+e.money[1].checked*0))/100;
var delivery = e.dostavka[0].checked*5
+e.dostavka[1].checked*15
+e.dostavka[2].checked*8;
// return " qty="+qty+" ds="+discount+" dry="+delivery;
var price = 20;
price = (price * qty) * discount + delivery;
e.price.value = price;
}
</script>
<table cellspacing="7">
<form name="form" action="zakaz.php" method="post">
<tr>
<td><p class="text">Кол-во:</p></td>
<td><input size="3" type="text" name="kolvo" value="1"
onChange="recalc1(this.form);" > шт.</td>
</tr>
<tr>
<td><p class="text">Способ оплаты:</p></td>
<td>
<input type="radio" name="money" value="webmoney"
onClick="recalc1(this.form);" >WebMoney (скидка 2%)<Br>
<input type="radio" name="money" value="yandexmoney"
onClick="recalc1(this.form);" >ЯндексДеньги<Br>
</td>
</tr>
<tr>
<td><p class="text">Способ доставки:</p></td>
<td>
<input type="radio" name="dostavka" value="1"
onClick="recalc1(this.form);" >1 вариант<Br>
<input type="radio" name="dostavka" value="2"
onClick="recalc1(this.form);" >2 вариант<Br>
<input type="radio" name="dostavka" value="3"
onClick="recalc1(this.form);" >3 вариант<Br>
</td>
</tr>
<tr>
<td><p class="text">Итого к оплате:</p></td>
<td><input size="3" type="text" name="price">грн.</td>
</tr>
<tr>
<td></td>
<td><input class="button" type="submit" value="Заказать"></td>
</tr>
</form>
</table>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: buldovsky
(13.07.2009 в 23:56)
| | buldovsky, буду очень признателен за примеры. | |
|
|
|
|
|
|
|
для: Dizels
(13.07.2009 в 23:37)
| | первое - нужно создать функцию js которая при каком-либо событии (например при изменении значения элемента формы) обращаласть бы к файлу buy.php (в котором содержиться php код расчета стоимости) и отправляла ему необходимые для этого переменные (пример такой функции приведу если потребуется). А затем получив результат сгенерированый сервером, разместить значение итоговой суммы в нужном месте страницы (средствами js). | |
|
|
|
|
|
|
|
для: buldovsky
(13.07.2009 в 23:28)
| | Большое спасибо и последний нерешенный вопросик остался - я так понимаю, что тут нужно или java-скрипт или AJAX - как все это вывести в поле Итоговая стоимость без перезагрузки страницы? | |
|
|
|
|