1

Тема: Печать со страницы

подскажите пожалуйста ,можно ли как-нибудь реализовать печать отдельной части страницы с помощью php и javascript?...вот у меня страница с помощью css разделена на 3 части, мне нужно распечатать одну из них по нажатию на кнопку (ссылку) ..такое вообще возможно?

2

Re: Печать со страницы

VitoS сказал:

нужно распечатать одну из них по нажатию на кнопку (ссылку) ..такое вообще возможно?

Можно сделать кнопку при нажатии которой будет выведена форма печати всей HTML страницы, но не ее части. Если нужна только часть, то либо с помощью PHP, либо с помощью JavaScript, необходимо сперва создать отдельную страницу с необходимым для вывода на печать текстом.

3

Re: Печать со страницы

с этим разобрался..а можно средствами php и javascript текст, содержащийся на странице отправить в Word?

4

Re: Печать со страницы

VitoS сказал:

а можно средствами php и javascript текст, содержащийся на странице отправить в Word?

С помощью PHP можно генерировать HTML страницы, которые Word будет принимать, как текстовые файлы .doc, но я с таким не сталкивался, поэтому ничем конкретно помочь не смогу, поищите в сети.

5

Re: Печать со страницы

Здравствуйте..я бы хотел поинтересоваться, а можно ли как-нибудь вывести на экран информацию с БД следующим образом: по горизонтали должны располагаться даты, которые вытаскиваются из базы данных, а по вертикали фамилии учеников и на их пересечении должны выводиться оценки из БД...есть таблицы ucheniki и ocenki,в которой находятся оценки и даты..связываются таблицы по идентификатору ученика...я пытался сделать 3 цикла друг в друге, но че-то безуспешно(..подскажите пожалуйста что можно сделать?

6

Re: Печать со страницы

VitoS сказал:

по горизонтали должны располагаться даты, которые вытаскиваются из базы данных, а по вертикали фамилии учеников и на их пересечении должны выводиться оценки из БД.

Первым запросом выбираются даты, из которых формируется массив и верхняя строка таблицы. Вторым запросом выбираем всех учеников и их оценки. Заполняем имя ученика в строке и дальше проходим в цикле массив дат (первый запрос). Если за определенную дату в строке ученика есть оценка, то выводим ее, иначе формируем только пустую ячейку.

7

Re: Печать со страницы

сделал так:

$qwe="select Data from ocenki group by Data";
$qwe1="select Fio,Ocenka from ucheniki,ocenki where ucheniki.Id_uchen=ocenki.Id_uchen";
$resqwe=mysql_query($qwe);
$resqwe1=mysql_query($qwe1);

echo '<table border="1">';
echo '<tr><td></td>';

while ($row_oc=mysql_fetch_array($resqwe)){
$dat1=$row_oc['Data'];
echo '<td VALIGN=TOP align=center>'.$dat1;echo '</td>';}
echo '</tr>';

while($row_resqwe1=mysql_fetch_array($resqwe1,MYSQL_ASSOC)){
$uc=$row_resqwe1["Fio"];
$ocenka=$row_resqwe1["Ocenka"];
echo '<tr>';
echo'<td >' . $uc . '</td>';
echo '<td>'.$ocenka.'</td>';

echo '</tr>';}
echo '</table>';

даты по горизонтали он формирует, но далее все неверно..где нужно исправить подскажите пожалуйста...

8

Re: Печать со страницы

Почти правильно, только надо было сделать промежуточную выборку Fio, чтобы заполнить первый столбец таблицы.

<?php

function func_ocenka($fio, $data) {
    $sql = 'SELECT `Ocenka`, `Data` FROM `ocenki` WHERE `Fio` = "' . addslashes($fio) . '"';
    $ocenka = array();
    if ($res = mysql_query($sql)) {
        while ($row = mysql_fetch_assoc($res)) {
            $ocenka[$row['Data']] = $row['Ocenka'];
        }
    }
    
    foreach ($data as $value) {
        print '<td>' . (isset($ocenka[$value]) ? $ocenka[$value] : '') . '</td>';
    }
}

$qwe="select Data from ocenki group by Data";
$qwe1="select Fio,Ocenka from ucheniki,ocenki where ucheniki.Id_uchen=ocenki.Id_uchen GROUP BY `Fio`";
$resqwe=mysql_query($qwe);
$resqwe1=mysql_query($qwe1);
echo '<table border="1">';
echo '<tr><td></td>';
$data = array();
while ($row_oc=mysql_fetch_array($resqwe)){
$data[] = $row_oc['Data'];
echo '<td VALIGN=TOP align=center>'. $row_oc['Data'];
echo '</td>';
}
echo '</tr>';

while($row_resqwe1=mysql_fetch_array($resqwe1,MYSQL_ASSOC)){
$uc=$row_resqwe1["Fio"];
$ocenka=$row_resqwe1["Ocenka"];
echo '<tr>';
echo'<td >' . $uc . '</td>';
    func_ocenka($row_resqwe1["Fio"], $data);
echo '</tr>';
}

echo '</table>';

9

Re: Печать со страницы

все получилось!спасибо!

10

Re: Печать со страницы

Здравствуйте! подскажите пожалуйста, можно ли каким-нибудь образом реализовать следующее: должна строиться таблица, состоящая из 2х столбцов: в одном фамилии студентов, а в другом выпадающие списки, содержащие оценки (2,3,4,5)..но выпадающие списки должны быть уникальными для каждого ученика..при нажатии на кнопку содержания этих списков должны занестись в базу...
вот моя таблица с учениками:
$query12="select Id_klass from klass where Name_Klass='".$_REQUEST['Name_Klass1']."'";
$result12=mysql_query($query12);
$row12=mysql_fetch_assoc($result12);
$id_klass1=$row12["Id_klass"];
$qwe1="select Fio,Ocenka,Id_klass from ucheniki,ocenki,uchenik_klass where ucheniki.Id_uchen=ocenki.Id_uchen and ucheniki.Id_uchen=uchenik_klass.Id_uchen and Id_klass='$id_klass1' GROUP BY `Fio`";

$resqwe1=mysql_query($qwe1);
echo '<table border="1">';

while($row_resqwe1=mysql_fetch_array($resqwe1,MYSQL_ASSOC)){
$uc=$row_resqwe1["Fio"];

echo '<tr>';
echo'<td >' . $uc . '</td>';
       
echo '</tr>';
}

echo '</table>';

подскажите пожалуйста как можно сделать это

11

Re: Печать со страницы

После поля имени добавьте в таблицу поле оценки и создайте в нем выпадающий список.

    <select multiple name="uid[1]">
        <option value="1">1</option>
        <option value="2">2</option>
        ...
        <option value="5">5</option>
    </select>

Обратите внимание на значение в параметре name - uid[1]. uid - это имя массива, в квадратных скобках необходимо поместить идентификатор ученика, таким образом принять и обработать такие данные можно будет через POST запрос.

<?php

if (isset($_POST['uid']) && count($_POST['uid']) > 0) {
  foreach($_POST['uid'] as $key => $value) {
//    $key - переменная будет содержать ключ массива (идентификатор ученика), в соответствии с примером это будет 1.
//    $value - будет содержать выбранную оценку.
//    Дальше составляйте запрос на обновление или добавление оценки в соответствии с идентификатором ученика.
  }
}

?>

12

Re: Печать со страницы

сделал так, но не добавляется информация..ошибок тоже не выводит:

$tem="select distinct Id_tema,Tema from tema where Tema='" . $_GET["name"]."'";//exit ($tem);
$re_tem=mysql_query($tem);
$row_dat=mysql_fetch_assoc($re_tem);
$id_tema=$row_dat['Id_tema'];

$sql_dat="select Data from ocenki where Id_tema='$id_tema' order by Data";
  $re_dat=mysql_query($sql_dat);
  $row_dat_tem=mysql_fetch_assoc($re_dat);
$data=$row_dat_tem['Data'];

$query10="select Id_predm from predm where name_predm='".$_REQUEST['name_predm1']."'";
$result10=mysql_query($query10);
$row10=mysql_fetch_assoc($result10);
$id_predm=$row10["Id_predm"];


echo '<form method="post" action="">';
echo '<table border="1">';

while($row_resqwe1=mysql_fetch_array($resqwe1,MYSQL_ASSOC)){
$uc=$row_resqwe1["Fio"];
$id_uchen=$row_resqwe1["Id_uchen"];

echo '<tr>';
echo'<td >' . $uc . '</td>';
echo '<td>';
echo '<select name="uid["'.$id_uchen.'"]">
<option value=""></option>
<option value="н">н</option>
<option value="2">2</option>
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
</select>';echo '</td>';   
echo '</tr>';
}

echo '</table>';
echo '<input type=submit name="vistav" value="Выставить">';
echo '</form>';
if (isset($_REQUEST['vistav'])){
if (isset($_POST['uid']) && count($_POST['uid']) > 0) {
  foreach($_POST['uid'] as $key => $value) {
  $dob_oc="Insert into ocenki (Id_uchen,Id_predm,Id_tema,Ocenka,Data) values ('$id_uchen','$id_predm','$id_tema','$value','$data')";
  $res_dob=mysql_query($dob_oc);
  if (!$res_dob)
{echo "Ваши данные не добавлены". mysql_error();}

  }
}

13

Re: Печать со страницы

Проверьте сформированный SQL запрос на вставку данных, если до его выполнения доходит.

14

Re: Печать со страницы

до запроса все работает..я пробовал проверить запрос, прописав exit($dob_oc) после самого запроса, но он ничего не выводит

15

Re: Печать со страницы

Лишние кавычки. Должно выглядеть так: name="uid[1]"
echo '<select name="uid["'.$id_uchen.'"]">
<option value=""></option>
<option value="н">н</option>
<option value="2">2</option>
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
</select>';

16

Re: Печать со страницы

теперь запрос сам работает, но в базу данных не добавляется информация..вообще не понятно почему

17

Re: Печать со страницы

VitoS сказал:

в базу данных не добавляется информация

Проверьте сгенерированный запрос в phpMyAdmin.

18

Re: Печать со страницы

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

19

Re: Печать со страницы

VitoS сказал:

почему-то одного ученика несколько раз с разными оценками

Смотрите какие запросы составляются и какие нужны. Вносите правки в работу скрипта, чтобы его логика начинала работать так, как надо.

20

Re: Печать со страницы

я разобрался. спасибо за помощь