Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: форма заказа

Сообщения:  [1-10]   [11-15] 

 
 автор: Trianon   (14.07.2009 в 01:13)   письмо автору
 
   для: Dizels   (14.07.2009 в 00:39)
 

>И вот здесь как раз и наступает вопрос - как получить id только что добавленной записи в таблицу.

в поиск. Тема разжевана в кашу.

  Ответить  
 
 автор: Trianon   (14.07.2009 в 01:12)   письмо автору
 
   для: Dizels   (14.07.2009 в 00:53)
 

А слова $_SESSION Вы не заметили?

  Ответить  
 
 автор: Dizels   (14.07.2009 в 00:53)   письмо автору
 
   для: Trianon   (14.07.2009 в 00:44)
 

Дело в том, что изначально я не планирую на данный момент делать регистрацию и т.д., так как теоретически - продаваться будет только 1 товар.

  Ответить  
 
 автор: Trianon   (14.07.2009 в 00:44)   письмо автору
 
   для: Dizels   (14.07.2009 в 00:39)
 

Можно же сперва проверить, что заказ принадлежит именно этому посетителю ($_SESSION, user_id и т.п.).

  Ответить  
 
 автор: buldovsky   (14.07.2009 в 00:42)   письмо автору
 
   для: 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
    }
  }
}

  Ответить  
 
 автор: Dizels   (14.07.2009 в 00:39)   письмо автору
 
   для: 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 можно подставить любой номер и таким образом узнать данные о любом заказе. А это я думаю не очень хорошо)

  Ответить  
 
 автор: Trianon   (14.07.2009 в 00:27)   письмо автору
 
   для: 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>

  Ответить  
 
 автор: Dizels   (14.07.2009 в 00:07)   письмо автору
 
   для: buldovsky   (13.07.2009 в 23:56)
 

buldovsky, буду очень признателен за примеры.

  Ответить  
 
 автор: buldovsky   (13.07.2009 в 23:56)   письмо автору
 
   для: Dizels   (13.07.2009 в 23:37)
 

первое - нужно создать функцию js которая при каком-либо событии (например при изменении значения элемента формы) обращаласть бы к файлу buy.php (в котором содержиться php код расчета стоимости) и отправляла ему необходимые для этого переменные (пример такой функции приведу если потребуется). А затем получив результат сгенерированый сервером, разместить значение итоговой суммы в нужном месте страницы (средствами js).

  Ответить  
 
 автор: Dizels   (13.07.2009 в 23:37)   письмо автору
 
   для: buldovsky   (13.07.2009 в 23:28)
 

Большое спасибо и последний нерешенный вопросик остался - я так понимаю, что тут нужно или java-скрипт или AJAX - как все это вывести в поле Итоговая стоимость без перезагрузки страницы?

  Ответить  

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования