За последние 24 часа нас посетили 26495 программистов и 1545 роботов. Сейчас ищет 791 программист ...

форма заказа

Тема в разделе "PHP для новичков", создана пользователем georgela, 5 окт 2011.

  1. georgela

    georgela Активный пользователь

    С нами с:
    11 май 2011
    Сообщения:
    395
    Симпатии:
    0
    Подскажите яваскрипт такой чтобы при нажатии на кнопку заказать или отправить сообщение вылезала форма с полями,а фон сайта при этом становился черным.То есть в этой форме допустим 3 поля,которые уходят на почту администрации.В этих полях бы человек указывал свои контактные данные ,Имя фамилию,и другие.Знаете так чтобы можно было отправить сообщение не перезагружая страницу.
     
  2. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
  3. georgela

    georgela Активный пользователь

    С нами с:
    11 май 2011
    Сообщения:
    395
    Симпатии:
    0
    runner
    Прикольно,еще бы на русском.
     
  4. runner

    runner Активный пользователь

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    приведу пример использования с использованием 3-файлов
    1)файл main.php-это файл где у вас есть кнопка, при нажатии на которую должна всплывать форма заказа
    PHP:
    1.  
    2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    3. <html dir="ltr">
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    6.  
    7. <script type="text/javascript" src="/js/jquery/jquery-1.4.2.min.js"></script>
    8. <script type="text/javascript" src="/js/jquery/jquery.form.js"></script>
    9.  
    10. </head>
    11. <style type="text/css">
    12. .modal-overlay
    13. {
    14.     position:fixed;
    15.     top:0;
    16.     right:0;
    17.     bottom:0;
    18.     left:0;
    19.     height:100%;
    20.     width:100%;
    21.     margin:0;
    22.     padding:0;
    23.     background:#fff;
    24.     opacity:.75;
    25.     filter: alpha(opacity=75);
    26.     -moz-opacity: 0.75;
    27.     z-index:101;
    28. }
    29. .modal-window
    30. {
    31.     position:fixed;
    32.     top:50%;
    33.     left:50%;
    34.     margin:0;
    35.     padding:0;
    36.     z-index:102;
    37. }
    38. .close-window
    39. {
    40.     position:absolute;
    41.     width:32px;
    42.     height:32px;
    43.     right:8px;
    44.     top:8px;
    45.     background:transparent url('/images/close-button.png') no-repeat scroll right top;
    46.     text-indent:-99999px;
    47.     overflow:hidden;
    48.     cursor:pointer;
    49.     opacity:.5;
    50.     filter: alpha(opacity=50);
    51.     -moz-opacity: 0.5;
    52. }
    53. .close-window:hover
    54. {
    55.     opacity:.99;
    56.     filter: alpha(opacity=99);
    57.     -moz-opacity: 0.99;
    58. }
    59. </style>
    60. <script language="javascript" type="text/javascript">
    61. var modalWindow = {
    62.     parent:"body",
    63.     windowId:null,
    64.     content:null,
    65.     width:null,
    66.     height:null,
    67.     close:function()
    68.     {
    69.         $(".modal-window").remove();
    70.         $(".modal-overlay").remove();
    71.  
    72.         $.ajax({
    73.             url: "closepopup.php",
    74.         });
    75.  
    76.     },
    77.     open:function()
    78.     {
    79.         var modal = "";
    80.         modal += "<div class=\"modal-overlay\"></div>";
    81.         modal += "<div id=\"" + this.windowId + "\" class=\"modal-window\" style=\"width:" + this.width + "px; height:" + this.height + "px; margin-top:-" + (this.height / 2) + "px; margin-left:-" + (this.width / 2) + "px;\">";
    82.         modal += this.content;
    83.         modal += "</div>";
    84.  
    85.         $(this.parent).append(modal);
    86.  
    87.         $(".modal-window").append("<a class=\"close-window\"></a>");
    88.         $(".close-window").click(function(){modalWindow.close();});
    89.         $(".modal-overlay").click(function(){modalWindow.close();});
    90.     }
    91. };
    92. var openMyModal = function(source)
    93. {
    94.     modalWindow.windowId = "myModal";
    95.     modalWindow.width = 780;
    96.     modalWindow.height = 600;
    97.     modalWindow.content = "<iframe width='780' height='600' frameborder='0' scrolling='no' allowtransparency='true' src='" + source + "'></iframe>";
    98.     modalWindow.open();
    99. };
    100. function closeIframe()
    101. {
    102.         $(".modal-window").remove();
    103.         $(".modal-overlay").remove();
    104. }
    105. </script>
    106. <body>
    107. <?php
    108. print "<input type=\"button\" value='Order' onclick=\"openMyModal('myform.php')\">";
    109. ?>
    110. </body>
    111. </html>
    112.  
    2) файл -myform.php-это файл выводящий форму

    PHP:
    1.  
    2. <script type="text/javascript" src="js/jquery/jquery-1.4.2.min.js"></script>
    3. <script type="text/javascript" src="js/jquery/jquery.form.js"></script>
    4. <script language="javascript" type="text/javascript">
    5. $(function() {
    6.     $("#submit_button").click(function() {
    7.         // validate and process form here
    8.         var order_id = $("#id").val();
    9.         if (order_id == "")
    10.         {
    11.             alert('id is required!')
    12.         }
    13.         var order_item = $("#item").val();
    14.         if (order_item == "")
    15.         {
    16.             alert('order_item is required!')
    17.         }
    18.         var order_quantity = $("#quantity").val();
    19.         if (order_quantity == "")
    20.         {
    21.             alert('order_quantity is required!')
    22.         }
    23.         if(order_id == "" || order_item == "" || order_quantity == "")
    24.         {
    25.             return false;
    26.         }
    27.         url='save.php?order_id='+order_id+'&order_item='+order_item+'&order_quantity='+order_quantity;
    28.         $.getJSON(url, null,function(data)
    29.         {
    30.             if(data.order_saved==0)
    31.             {
    32.                 alert("Your order failed!")
    33.             }
    34.             else
    35.             {
    36.                 alert('Your order saved ');
    37.                 window.parent.closeIframe();
    38.             }
    39.  
    40.         });
    41.         return false;
    42.     });
    43. });
    44. </script>
    45. <form>
    46. <table border=1>
    47. <tr>
    48. <td>Order N</td>
    49. <td><input type="text" name="order_id" id="id">
    50. </td>
    51. </tr>
    52. <tr>
    53. <td>Order Item</td>
    54. <td><input type="text" name="order_item" id="item">
    55. </td>
    56. </tr>
    57. <tr>
    58. <td>Quantity</td>
    59. <td><input type="text" name="order_quantity" id="quantity">
    60. </td>
    61. </tr>
    62. </table>
    63. <input type="submit"  value="Order"  id="submit_button" />
    64. </form>
    65. <a href="javascript: window.parent.closeIframe()">Cancel</a>
    66.  
    3) файл сохранения введенного заказа-save.php
    PHP:
    1.  
    2. <?php
    3. if(isset($_GET['order_id']) and isset($_GET['order_item']) and isset($_GET['order_quantity']))
    4. {
    5.     //проверка и сохранение данных
    6.     // если все ОК, то $data['order_saved']=1;
    7.     // если нет $data['order_saved']=0;
    8.    
    9.     $data=array();
    10.     $data['order_saved']=1;// или $data['order_saved']=0
    11.     echo json_encode($data);
    12. }
    13.  
    Схема работы такая:
    1)При нажатии кнопки вызова формы заказа вызывается функция создания модального окна(openMyModal). В качестве аргумента передается название скрипта формы заказа(myform.php)
    2) при нажатии кнопки сохранения заказа проверяются все ли поля заполнены и если они заполнены отправляется getJSON запрос на сервер. В качестве скрипта обработки указывается скрипт save.php, который записывает заказ в базу и информирует клиента, об успехе или неуспехе операции