Помогите сделать вывод на печать

Тема в разделе "JavaScript", создана пользователем penguen, 26 июн 2013.

Модераторы: ZiX
  1. penguen

    penguen

    Регистр.:
    7 янв 2007
    Сообщения:
    821
    Симпатии:
    93
    Всем добрый день
    Есть форма


    script.js его содержимое

    Код:
            function calc() {
                var a = document.getElementById("a");
                var b = document.getElementById("b");
                var c = document.getElementById("c");
                var d = document.getElementById("d");
                var e = document.getElementById("e");
                var f = document.getElementById("f");
                var g = document.getElementById("g");
                var result = document.getElementById("result"); 
       
                var square = 0;
                var fundament = 0;
                var material = 0;
                var height = 0;
                var floors = 0;
                var manfloor = 0;
                var roof = 0;
                var price = 0;
                square = a.value.replace (/\,/, '.');
                fundament += parseFloat(b.options[b.selectedIndex].value);
                material += parseFloat(c.options[c.selectedIndex].value);
                height += parseFloat(d.options[d.selectedIndex].value);
                floors += parseFloat(e.options[e.selectedIndex].value);
                manfloor += (f.checked == true) ? parseFloat(f.value) : 0;
                roof += parseFloat(g.options[g.selectedIndex].value);
                price = square * fundament + square * material * height * floors + square * material * height * manfloor + square * roof;
                price = price.toFixed(2);
                price_meter = price / ((floors + manfloor) * square);
                price_meter = price_meter.toFixed(2);
                result.innerHTML = price;
                result_meter.innerHTML = price_meter;
                }
       
       
            var ok1=false
            function test(form)
                {
                    if (form.sq.value.replace (/\,/, '.') == "")
                    {
                        ok1=false;
                        document.getElementById('res').style.display = 'none';
                        document.getElementById('alert').style.display = 'block';
                    }
       
                    else ok1=true;
     
                    if (form.sq.value.replace (/\,/, '.')/form.sq.value.replace (/\,/, '.'))
                    {
                        ok1=true;
                        document.getElementById('res').style.display = 'block';
                        document.getElementById('alert').style.display = 'none';
                    }
     
                    else {ok1=false;
                        document.getElementById('res').style.display = 'none';
                        document.getElementById('alert').style.display = 'block';
                        }
     
       
                if(ok1)
                    {
                        document.getElementById('res').style.display = 'block';
                        document.getElementById('alert').style.display = 'none';
                    }
                }
     
     
     
            function mat() {
                var c = document.getElementById("c");
                var material = 0;
                material += parseFloat(c.options[c.selectedIndex].value);
                if (material == "12507.3") {
                        document.getElementById('mat1').style.display = 'block';
                        document.getElementById('mat2').style.display = 'none';
                        document.getElementById('mat3').style.display = 'none';
                        document.getElementById('mat4').style.display = 'none';
                        document.getElementById('mat5').style.display = 'none';
                        document.getElementById('mat6').style.display = 'none';
                    }
     
                if (material == "15159") {
                        document.getElementById('mat1').style.display = 'none';
                        document.getElementById('mat2').style.display = 'block';
                        document.getElementById('mat3').style.display = 'none';
                        document.getElementById('mat4').style.display = 'none';
                            document.getElementById('mat5').style.display = 'none';
                        document.getElementById('mat6').style.display = 'none';
                    }
     
                if (material == "14340") {
                        document.getElementById('mat1').style.display = 'none';
                        document.getElementById('mat2').style.display = 'none';
                        document.getElementById('mat3').style.display = 'block';
                        document.getElementById('mat4').style.display = 'none';
                            document.getElementById('mat5').style.display = 'none';
                        document.getElementById('mat6').style.display = 'none';
                    }
     
                if (material == "16767.3") {
                        document.getElementById('mat1').style.display = 'none';
                        document.getElementById('mat2').style.display = 'none';
                        document.getElementById('mat3').style.display = 'none';
                        document.getElementById('mat4').style.display = 'block';
                            document.getElementById('mat5').style.display = 'none';
                        document.getElementById('mat6').style.display = 'none';
                    }
     
                            if (material == "15948.3") {
                        document.getElementById('mat1').style.display = 'none';
                        document.getElementById('mat2').style.display = 'none';
                        document.getElementById('mat3').style.display = 'none';
                        document.getElementById('mat4').style.display = 'none';
                            document.getElementById('mat5').style.display = 'block';
                        document.getElementById('mat6').style.display = 'none';
                    }
     
                  if (material == "20918.7") {
                        document.getElementById('mat1').style.display = 'none';
                        document.getElementById('mat2').style.display = 'none';
                        document.getElementById('mat3').style.display = 'none';
                        document.getElementById('mat4').style.display = 'none';
                            document.getElementById('mat5').style.display = 'none';
                        document.getElementById('mat6').style.display = 'block';
                    }
               
                }
     
     
       
            function printit(){
                if (window.print) {
                    window.print() ;
                } else {
                    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
                    document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
                    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = "";
                }
            }
     
    
    И сам скрипт вывода на печать raschet.php

    PHP:
    <?php
     
    $sq
    =$_REQUEST["sq"];
    $material=$_REQUEST["material"];
    $fundament=$_REQUEST["fundament"];
    $visota=$_REQUEST["visota"];
    $etajnost=$_REQUEST["etajnost"];
    $mansard=$_REQUEST["mansard"];
    $krovlya=$_REQUEST["krovlya"];
     
    $price=$_REQUEST["price"];
     
    $price_meter=$_REQUEST["price_meter"];
     
     
     
    $sum=$_REQUEST["sum"];
    ?>
    <html>
            <head>
                <title>Печать результатов расчета</title>
                <link href="/print.css" rel="stylesheet" media="all" />
                <meta charset="utf-8">
                   
            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
            </head>
            <body onload="1window.print();">
                <div style="border: 1px solid #D3EDFF; margin: 10px; padding: 5px; width: 750px; font-size: 11pt; ">
                    <div style="">
                        <div style="float: left;">
                            <img src="" alt="Теплокрепость" style="margin: 0 auto;" />
                        </div>
                        <div style="float: right; padding-top: 20px;">
                            <p>620041, г. Екатеринбург, <br />ул. Маяковского, 25/a, оф. 603</p>
                            <p>ИНН 6673207994 / КПП 667301001 <br />ОГРН 1096673012831</p>
                        </div>
                    </div>
                    <div style="clear: both; height: 20px; width: 100%;"></div>
                    <div>
                        <p>&nbsp;&nbsp;&nbsp;&nbsp;Решили строить дом? Коллектив ООО "ТеплоКрепость" готов удовлетворить желания любого заказчика.
                        Имея 20-летний опыт загородного домостроения, мы можем предложить Вашему вниманию различные технологии строительства.</p>
                        <p>
                        &nbsp;&nbsp;&nbsp;&nbsp;Вы использовали программу "калькулятор" на нашем сайте и получили приблизительный расчет дома по выбранным параметрам:
                        </p>
                        <p><h4>Параметры&nbsp;расчета</h4><b>Площадь</b>: <?php echo $sq;?><br />
                        <b>Фундамент</b>: <?php echo $fundament;?><br />
                        <b>Материал</b>: <?php echo $material;?><br />
                        <b>Высота этажа</b>: <?php echo $visota;?><br />
                        <b>Этажность</b>: <?php echo $etajnost;?><br />
                        <b>Кровля</b>: <?php echo $krovlya;?><br />
                        <b>Отношение окон и дверей к площади стен</b>: 15%<br /></p>
                        <p><h4>Результаты&nbsp;расчета: </h4>Стоимость строительства составляет:
                        <strong>
       
    <script language="javascript">
    var message = document.getElementById("result");
    $.get('http://http://ck-lider.ru/raschet.php', {message:message}, function(data)    {
        alert('Сервер ответил: '+data);
    });
    </script>
                       
                       
                        <?php echo $sum?></strong> руб. <br />Стоимость кв. метра: <strong><?php echo $price_meter;?></strong> руб.<br /></p>
                        <p><br />
                        <b>В стоимость включена следующая комплектация:</b> <br />
                        <ul>
                            <li>Фундамент</li>
                            <li>Перекрытия</li>
                            <li>Кровля (металлическая или битумная черепица)</li>
                            <li>Окна пластиковые 2-х камерный стеклопакет</li>
                            <li>Двери наружные (Форпост)</li>
                            <li>Отделка фасадов (декоративная штукатурка)</li>
                            <li>Лестница (материал ЛВЛ)</li>
                            <li style="list-style: none;"><b>Инженерные сети</b>
                            <b>до отметки ±0,000 (чистовой пол 1-го этажа)</b></li>
                           
                        </ul><br />
                        Точную смету стоимости дома Вы можете получить после разработки рабочего проекта.
                        </p><br />
                       
                    </div>
                    <div style="padding-top: 30px;">
                        <b>Тел./факс: (343) 389-82-32, 389-82-33</b><br />
                        E-mail: tim-246@mail.ru, <br />
                        Web: www.teplokrepost.ru
                    </div>
                </div>
            </body>
        </html>
        
    Не могу вывести/отобразить на странице печати данные result и result_meter

    id=result это слой дива. Значение калькуляции считается javascript. Не могу передать post запросом на скрипт raschet.php

    Помогите плиз.

    Может после моря, туплю мрачно, что-то делаю не так. С утра бьюсь, не могу осилить.
     
  2. penguen

    penguen

    Регистр.:
    7 янв 2007
    Сообщения:
    821
    Симпатии:
    93
    Сань, да так и так возился. Ничего не работает.
     
  3. COVORP

    COVORP Писатель

    Регистр.:
    20 дек 2012
    Сообщения:
    5
    Симпатии:
    3
    есть поля:

    <input type="hidden" name="price" value="0,00"/>
    <input type="hidden" name="price_meter" value="0,00"/>

    теперь в формуле расчета добавь после:
    result.innerHTML = price;
    result_meter.innerHTML = price_meter;
    это
    document.forms['calculate'].price.value= price;
    document.forms['calculate'].price_meter.value= price_meter;
    это заполнит результатами поля hidden, которые просто прочитаешь гетом на пхп в странице печати расчетов
     
    penguen нравится это.