PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (2): [1] 2 »
Найдено сообщений: 25
PHucker
Отправлено: 24 Июня, 2014 - 13:16:18 • Тема: Include в div'е • Форум: HTML, Дизайн & CSS
Ответов: 0 Просмотров: 661
Здравствуйте! Подскажите пожалуйста. У меня шаблон готов. И я специально оставил один <div></div> для Include'а. Попробовал сделать так:
почему-то не работает. Этот div будет менять содержимое при нажатии на ссылки. Потом попробовал с этим: это работает, но почему-то с CSS не связывается и только текст выводится. Хотя CSS у меня подключен. А вообще можно так сделать как я хочу? Поместить внутри div'а include и при нажатии на ссылки только в div'е будут открываться ссылки. А остальное не будет "шевелиться".
PHucker
Отправлено: 05 Июня, 2014 - 12:14:00 • Тема: нужно сделать кнопки которые будут выполнять sql запрос • Форум: JavaScript & VBScript
Ответов: 1 Просмотров: 812
есть таблица, в нем есть один столбец у которого три значения. и они повторяются. нужно сделать так чтобы по нажатии на кнопку он группировал эти значения. допустим три значения равны словам: sport, books, job. и эти слова повторяются в таблице. и по нажатии одной кнопки выходят только значения sport. нажать на другую кнопку и выходят значения books. то есть каждому значению по кнопке. могу показать код если понадобится. попробовал group by и order by на кнопку не реагирует. отправляю методом GET. кнопки находятся в форме если что))
PHucker
Отправлено: 30 Мая, 2014 - 05:45:17 • Тема: Здравствуйте! Помогите с такой проблемой: есть таблица в которой можно свернуть\развернуть строки. И вот когда разворачиваю работает, а обратно свернуть не могу. Для того чтобы было понятно выложу весь код: • Форум: JavaScript & VBScript
Ответов: 1 Просмотров: 869
Здравствуйте!
Помогите с такой проблемой: есть таблица в которой можно свернуть\развернуть строки.
И вот когда разворачиваю работает, а обратно свернуть не могу. Для того чтобы было понятно выложу весь код:
CODE (
css ):
скопировать код в буфер обмена
table {
background-color : #D5EEEE ;
border-collapse : collapse ;
font : 400 10pt /19px Arial, 'MS Sans Serif' , 'sans-serif' ;
}
table th {
background : #4682B4 ;
color : #fff ;
}
table td, th {
padding : 3px ;
border : 1px solid #D3D3D3 ;
}
.treetable label a{
cursor : pointer ;
color : #fff ;
font-weight : bold ;
padding-left : 16px ;
}
.treetable tr {
display : none ;
}
.treetable thead tr {
display : table-row ;
}
.treetable .lev1 {
background : #6E9ECA ;
display : table-row ;
}
input[ type = "checkbox" ] {
display : none ;
}
input + a {
background : url ( data: image/png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAACXBIWXMAAAsSAAALEgHS3X78AAAAkElEQVQYlXWOvRWDQAyDv/DYK2wQSro8OkpGuRFcUjJCRmEE0TldCpsjPy9qzj7Jki62Pgh4vnqbbbEWuN+ use/PlArwHccWGg780psENGFY6W4YgxZIAM339WmT3m397YYxxn6aASslFfVotYLTT3NwcuTKlFpNR2sdEak4acdKeafPlE2SZ7sw/1BEtX94AXYTVmyR94mPAAAAAElFTkSuQmCC)
no-repeat 0px 5px ;
}
input:checked + a{
background : url ( data: image/png; base64, iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAACXBIWXMAAAsSAAALEgHS3X78AAAAeklEQVQYlX2PsRGDMAxFX3zeK9mAlHRcupSM4hFUUjJCRpI70VHIJr7D8BtJ977+ SQ9Zf7isVG16WSQC0/D0OW/FqoBlDFkIVJ2xAhA8sI/NHbcYiFrPfI0fGklKagDx2F4ltdtaM0J9L3dxcVxi+ zv62E+ MwPs7c60dClRP6iug7wUAAAAASUVORK5CYII= )
no-repeat 0px 5px ;
}
td+ td+ td { text-align : right ; }
CODE (
javascript ):
скопировать код в буфер обмена
document.getElementById ( 'cmdMakeGroup' ) .disabled = false ;
document.getElementById ( 'cmdCollapseAll' ) .disabled = true ;
document.getElementById ( 'cmdExpandAll' ) .disabled = true ;
function MakeGroupTable ( ) {
var MyTable = document.getElementById ( 'MyTable' ) ;
var rowCount = MyTable.rows .length ;
var cellCount = MyTable.rows [ 1] .cells .length ;
var idx = 1 ;
var CurrentValue = '' ;
MyTable.className = 'treetable' ;
while ( idx < rowCount) {
if ( CurrentValue != MyTable.rows [ idx] .cells [ 0] .innerHTML ) {
CurrentValue = MyTable.rows [ idx] .cells [ 0] .innerHTML ;
MyTable.insertRow ( idx) ;
MyTable.rows [ idx] .className = 'lev1' ;
for ( i= 0 ; i < cellCount; i++ ) { MyTable.rows [ idx] .insertCell ( i) ; }
MyTable.rows [ idx] .cells [ 0 ] .innerHTML = '<label><input type="checkbox"><a onclick="sh(this)">' + CurrentValue + '</a></label>' ;
} else {
MyTable.rows [ idx] .className = 'lev2' ;
MyTable.rows [ idx] .cells [ 0 ] .innerHTML = ' ' ;
}
idx++;
rowCount = MyTable.rows .length ;
}
document.getElementById ( 'cmdMakeGroup' ) .disabled = true ;
document.getElementById ( 'cmdCollapseAll' ) .disabled = false ;
document.getElementById ( 'cmdExpandAll' ) .disabled = false ;
}
function ResetAll( ) {
var cs = document.getElementsByTagName ( 'input' ) ;
for ( i= 0 ; i < cs.length ; i++ ) {
if ( cs.type == 'checkbox' ) {
cs.checked = false ;
}
}
}
function ShowLevel( row, lv) {
var tBody = row.parentNode ;
var i = row.rowIndex ;
row = tBody.rows ; // Попытка перейти к следующей строке
while ( row && row.className .substring ( 3) * 1 > lv) {
if ( row.className .substring ( 3 ) * 1 == lv+ 1 ) {
row.style .display = 'table-row' ;
if ( ( row.querySelector ( 'td input' ) ) && row.querySelector ( 'td input' ) .checked ) {
ShowLevel( row, lv+ 1) ;
}
}
i+= 1 ;
row = tBody.rows ;
}
}
function HideLevel( row, lv) {
var i = row.rowIndex ;
var tBody = row.parentNode ;
row = tBody.rows ; // Попытка перейти к следующей строке
while ( row && row.className .substring ( 3) * 1 > lv) {
row.style .display = 'none' ;
i+= 1 ;
row = tBody.rows ;
}
}
function sh( el) {
var row = el.parentNode .parentNode .parentNode ;
var lv = row.className .substring ( 3) * 1 ; // Уровень строки, циферка после 'lev'
if ( row.querySelector ( 'td input' ) .checked ) {
HideLevel( row, lv) ;
} else {
ShowLevel( row, lv) ;
}
}
function SwapAll( b) {
var tbl = document.getElementsByClassName ( 'treetable' ) [ 0] ;
for ( i= 1 ; i < tbl.rows .length ; i++ ) {
if ( tbl.rows .className != 'lev1' ) {
if ( b) { tbl.rows .style .display = 'table-row' ; }
else { tbl.rows .style .display = 'none' ; }
}
if ( tbl.rows .querySelector ( 'td input' ) ) { tbl.rows .querySelector ( 'td input' ) .checked = b; }
}
}
CODE (
html ):
скопировать код в буфер обмена
<body ><center >
<button onclick = "MakeGroupTable();" id = "cmdMakeGroup" > Сгруппировать</ button >
<button onclick = "SwapAll(false);" id = "cmdCollapseAll" disabled> Свернуть все</ button >
<button onclick = "SwapAll(true);" id = "cmdExpandAll" disabled> Развернуть все</ button >
<a href = "extended.php" ><button > Сгруппировать по дате</ button ></ a >
<br ><br >
<table id = "MyTable" ><script >
</ script >
<col width = 100 > <col width = 150 >
<thead >
<tr >
<th > Номер Счетчика </ th >
<th > ID </ th >
<th > Fields </ th >
<th > Description </ th >
<th > <form action = "<?=$_SERVER[" PHP_SELF"]?> " method="get">
Введите дни(от 1 до 30):
<input type = "text" name = "name" ><br >
<input type = "submit" value = "Считать" >
<a href = "example.php" ><input type = "button" value = "Сброс" onclick = "" ></ a >
</ form > </ th >
<th > Значение </ th >
</ tr >
</ thead >
<tr >
<td ></ td >
<td ></ td >
<td ></ td >
<td ></ td >
<td ></ td >
<td ></ td >
</ tr >
<?php
$connect = mysql_connect( "*************" , "*************" , "**************" ) or die( "Ошибка соединения!" ) ;
mysql_select_db( "smartvend" , $connect) ;
if ( isset( $_GET[ "name" ] ) )
{
$name = $_GET[ "name" ] ;
$query = "SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate> = SUBDATE(CURRENT_DATE, INTERVAL $name DAY)
ORDER BY MeterNum asc, ExecDate ASC";
}
else {
$result = mysql_query("SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate>= '(CURDATE()'
ORDER BY MeterNum asc, execdate DESC",$connect);
while ($data = mysql_fetch_row($result))
{
echo"<tr > ";;
echo"<td > {$data[0]}</ td > ";
echo"<td > {$data[1]}</ td > ";
echo"<td > {$data[2]}</ td > ";
echo"<td > {$data[3]}</ td > ";
echo"<td > {$data[4]}</ td > ";
echo"<td > {$data[5]}</ td > ";
echo"</ tr > ";
}
}
$sql = mysql_query($query) or die("<p ></ p > ");
while ($data = mysql_fetch_row($sql))
{
echo"<tr > ";
echo"<td > {$data[0]}</ td > ";
echo"<td > {$data[1]}</ td > ";
echo"<td > {$data[2]}</ td > ";
echo"<td > {$data[3]}</ td > ";
echo"<td > {$data[4]}</ td > ";
echo"<td > {$data[5]}</ td > ";
echo"</ tr > ";
}
mysql_close();
?>
</ table >
</ center >
</ body >
PHucker
Отправлено: 27 Мая, 2014 - 06:38:38 • Тема: как сделать список раскрывающимся? • Форум: Вопросы новичков
Ответов: 17 Просмотров: 661
Panoptik пишет: по хорошему я бы обработал изначально данные перед выводом. сгрупировав их в массив, по этому самому номеру, и потом выводил в таблице согласно группам, а группу можно вывести в отдельном диве или любом другом удобном элементе, и отображать скрывать его сколько угодно.
я могу просто создать массив. но с этим не сталкивался. на простом примере покажите плиз.
PHucker
Отправлено: 26 Мая, 2014 - 12:54:21 • Тема: как сделать список раскрывающимся? • Форум: Вопросы новичков
Ответов: 17 Просмотров: 661
DelphinPRO пишет: как я понял задачу:
вывести таблицу. в случае совпадения значений в первом столбе в нескольких подряд идущих строках (возможно, данные следует отсортировать по этому значению, если там не хронологический порядок) выводить только первую строку, остальные скрыть, с возможностью открывания по упомянутой строке.
Делается весьма просто.
Генерируем такую разметку
CODE (
html ):
скопировать код в буфер обмена
<table id = "data-table" >
<tr ><td class = "clicker" data-id = "g12" > 12</ td ><td > ...</ td ></ tr >
<tbody id = "g12" class = "hidden" >
<tr ><td > 12</ td ><td > ...</ td ></ tr >
<tr ><td > 12</ td ><td > ...</ td ></ tr >
</ tbody >
<tr ><td class = "clicker" data-id = "g14" > 14</ td ><td > ...</ td ></ tr >
<tbody id = "g14" class = "hidden" >
<tr ><td > 14</ td ><td > ...</ td ></ tr >
<tr ><td > 14</ td ><td > ...</ td ></ tr >
</ tbody >
</ table >
Пишем простой яваскрипт (jQuery)
CODE (
javascript ):
скопировать код в буфер обмена
$( "#data-table" ) .on ( 'click' , '.clicker' , function ( ) {
var relId = $( this ) .data ( 'id);
$(' #' + relId).toggle();
});
C генерацией разметки справитесь сами?
CSS забыл для скрытия блоков изначально
вы меня правильно поняли, но столько ответов, надо в порядок привести башку
(Добавление)
извините, вы можете показать на примере с моим кодом? хотя бы кончик.
для новичка сложновато что ли понять...
PHucker
Отправлено: 26 Мая, 2014 - 12:30:29 • Тема: как сделать список раскрывающимся? • Форум: Вопросы новичков
Ответов: 17 Просмотров: 661
Panoptik пишет: каждой строке таблицы нужно давать класс - к примеру 'elem-12' где 12 этот ваш номер
и потом если у вас в таблице несколько строк подряд имеют тот же класс, то просто отображаете скрываете строки с этим классом
т.е я вытаскиваю из БД допустим значение 37130550470 и даю этому селекту какой-нибудь класс. и создаю кнопку с названием 37130550470, даю ему функцию которая будет скрывать\раскрывать?
(Добавление)
вот мой код
CODE (
html ):
скопировать код в буфер обмена
<html >
<head >
<title > Extended Report</ title >
<link href = "css/frombase.css" type = "text/css" rel = "stylesheet" >
</ head >
<body >
<center >
<table border = "1" height = "" width = "" id = "table1" >
<tr >
<td id = "first" > НомерСчетчика</ td >
<td id = "first" > ID</ td >
<td id = "first" > Fields</ td >
<td id = "first" > Description</ td >
<td id = "first" >
<form action = "<?=$_SERVER[" PHP_SELF"]?> " method="get">
Введите дни(от 1 до 30):
<input type = "text" name = "name" ><br >
<input type = "submit" value = "Считать" >
<input type = "button" value = "Сброс" onclick = "" >
</ form >
</ td >
<td id = "first" > Значение</ td >
</ tr >
<?php
$connect = mysql_connect( "**********" , "report_user" , "*********" ) or die( "Ошибка соединения!" ) ;
mysql_select_db( "smartvend" , $connect) ;
if ( isset( $_GET[ "name" ] ) )
{
$name = $_GET[ "name" ] ;
$query = "SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate> = SUBDATE(CURRENT_DATE, INTERVAL $name DAY)
ORDER BY ExecDate ASC";
}
else {
$result = mysql_query("SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate>= '(CURDATE()'
ORDER BY execdate DESC",$connect);
while ($data = mysql_fetch_row($result))
{
echo"<tr > ";
echo"<td > {$data[0]}</ td > ";
echo"<td > {$data[1]}</ td > ";
echo"<td > {$data[2]}</ td > ";
echo"<td > {$data[3]}</ td > ";
echo"<td > {$data[4]}</ td > ";
echo"<td > {$data[5]}</ td > ";
echo"</ tr > ";
}
}
$sql = mysql_query($query) or die("<p > Выберите дни</ p > ");
while ($data = mysql_fetch_row($sql))
{
echo"<tr > ";
echo"<td > {$data[0]}</ td > ";
echo"<td > {$data[1]}</ td > ";
echo"<td > {$data[2]}</ td > ";
echo"<td > {$data[3]}</ td > ";
echo"<td > {$data[4]}</ td > ";
echo"<td > {$data[5]}</ td > ";
echo"</ tr > ";
}
mysql_close();
?>
</ table >
</ center >
</ body >
</ html >
где MeterNum это те значения которые выводятся(первый столбец).
и как все это сделать я не могу представить даже.
PHucker
Отправлено: 26 Мая, 2014 - 10:33:44 • Тема: как сделать список раскрывающимся? • Форум: Вопросы новичков
Ответов: 17 Просмотров: 661
вот в первом столбце есть значения. в нем есть много одинаковых. и нужно сделать кнопку для всех значений только по одной каждому. то есть когда нажать допустим
на 37130550488 то этот список раскрывался и выводились все 37130550488. и так дальше.
И значение других столбцов должно меняться соответственно этому столбцу.
PHucker
Отправлено: 22 Мая, 2014 - 06:22:39 • Тема: как сделать список раскрывающимся? • Форум: Вопросы новичков
Ответов: 17 Просмотров: 661
Здравствуйте! Есть у меня таблица и задача которую трудновато мне решить. Допустим у меня в таблице есть один такой столбец который имеет много одинаковых значений. Пусть это значение будет числом 12. И это число при выводе очень много раз повторяется. И как сделать так, чтобы была кнопка и при клике раскрывались все значения числа 12? то есть как здесь:
<script>function showTooltip()
{
var myDiv = document.getElementById('tooltip');
if(myDiv.style.display == 'none')
{
myDiv.style.display = 'block';
} else {
myDiv.style.display = 'none';
}
return false;
}</script>
<button onclick=showTooltip()> Показать </button>
<div id=tooltip style='display: none'>
<li>Значение числа 12 №1</li>
<li>Значение числа 12 №2</li>
<li>Значение числа 12 №3</li>
<li>Значение числа 12 №4</li>
</div>
только эти данные берутся из БД в разном порядке. Потому что у меня стоит сортировка по времени.
PHucker
Отправлено: 20 Мая, 2014 - 05:38:36 • Тема: как укоротить код • Форум: Вопросы новичков
Ответов: 11 Просмотров: 408
Братюнь, спасибо! Хотел нажать на кнопку спасибо, надостатачно соообщений . Все слишком хорошо работает Спасибо еще раз
PHucker
Отправлено: 19 Мая, 2014 - 13:52:46 • Тема: как укоротить код • Форум: Вопросы новичков
Ответов: 11 Просмотров: 408
понимаете, у меня есть форма:
<form action="<?=$_SERVER["PHP_SELF"]?>" method="get">
Введите дни(от 1 до 30):
<input type="text" name="name"><br>
<input type = "submit" value = "Считать">
</form>
и когда вводят дни от 1 до 30 ти, выводятся соответствующие данные. В вашем коде я не понял где if ($name == 16 (или 18 или 25)). у вас берет только name. поэтому мне приходится каждому значению писать отдельный скрипт. в итоге у меня получилось где-то 1400 строк. и надо придумать хитрый ход и укоротить, что я не могу придумать. как-то надо else и while укоротить. какие есть варианты? SOS!!!
Страниц (2): [1] 2 »
Powered by ExBB FM 1.0 RC1. InvisionExBB