» »

Checkboxes dropdown (show/hide)

Checkboxes dropdown (show/hide)

dinozaver7 ::

Lp!

Spet jaz... iščem že nekaj časa pa ne najdem skripte(ali česa podobnega), ki bi prikazala/skrila listo checkboxov.. Torej imam nekaj odebeljenih imen("nadpomenk"), ko klikneš na naslov ti pod njim naniza(vsakega v svojo vrstico)5-10 checkboxov in ko obkljukaš s klikom na naslov zapreš checkboxe(jih "potegne" v naslov). Je pa prikaz imen in checkboxov narejen v phpju.

Trenutno imam vse checkboxe(jih je mnogo) na eni strani in je nepregledno.

Upam, da kdo razume in ve rešitev za ta problem!

Lp,

M
:P

bluefish ::

Kakšen JS bi najbrž lahko pomagal. Malo si poglej jQuery knjižice ipd.

dinozaver7 ::

Ima mogoče kdo konkreten odgovor?

Karkoli vprašam, skoraj nikoli ne dobim konkretnega odgovora :(
:P

JayKay ::

verjetno kaj temu podobnega
edit: še boljše

Zgodovina sprememb…

  • spremenil: JayKay ()

dinozaver7 ::

Super, ravno to sem rabil, hvala ti!
:P

dinozaver7 ::

Je že res, da je to tisto, kar rabim, vendar mi zadeve ne uspe integrirat v tole kodo spodaj. Ko klikneš na npr. Starost se ti spodaj odprejo dodatni okenčki (0-18,18-25...). Bi znal kdo pomagat? Lahko tudi proti plačilu! lp
echo "<form method=\"post\" action=\"test.php\">";
02.
 
03.
$qSkupine = mysql_query("SELECT ime, id_s FROM skupine WHERE ime = 'Starost' ORDER BY ime");
04.
while ($rSkupine = mysql_fetch_array($qSkupine)) {
05.
echo "<p><b><font size='4'>";
06.
echo $rSkupine['ime']."<br />";
07.
echo "</b></font></p>";
08.
 
09.
$qMoznosti = mysql_query("SELECT ime, id_m FROM moznosti WHERE id_s = ".$rSkupine['id_s']." ORDER BY ime");
10.
while ($rMoznosti = mysql_fetch_array($qMoznosti)) {
11.
echo "<input type=\"checkbox\" name=\"".$rSkupine['id_s']."[]\" value=\"".$rMoznosti['id_m']."\" /> ".$rMoznosti['ime']."<br />";
12.
}
13.
}
14.
 
15.
$qSkupine = mysql_query("SELECT ime, id_s FROM skupine WHERE ime != 'Starost' ORDER BY ime");
16.
while ($rSkupine = mysql_fetch_array($qSkupine)) {
17.
echo "<p><b><font size='4'>";
18.
echo "<br />";
19.
echo $rSkupine['ime']."<br />";
20.
echo "</b></font></p>";
21.
 
22.
$qMoznosti = mysql_query("SELECT ime, id_m FROM moznosti WHERE id_s = ".$rSkupine['id_s']." ORDER BY ime");
23.
while ($rMoznosti = mysql_fetch_array($qMoznosti)) {
24.
echo "<input type=\"checkbox\" name=\"".$rSkupine['id_s']."[]\" value=\"".$rMoznosti['id_m']."\" /> ".$rMoznosti['ime']."<br />";
25.
}
26.
}
27.
echo "<br />";
28.
echo "<input type=\"submit\" value=\"Potrdi\" name=\"klik\" />";
29.
echo "</form>";
:P

Zgodovina sprememb…

Tody ::

Če misliš delat ankete, potem ti je bolje da vzameš že kako gostovano zadevo. Kot recimor http://polldaddy.com/

dinozaver7 ::

Ni anketa, v bistvu je precej daleč od tega. Res noben ne obvlada javascripta oz. se mu ne da razlagat/pomagat?
:P

t3hn0 ::

kaj takega link

drugace pa google it...
^.^

dinozaver7 ::

Kaj mi pomaga zgooglat, če ne znam zadete vgradit? Očitno tudi tukaj nihče ne zna.
:P

dinozaver7 ::

Mogoče kdo ve, če je spodnja koda pravilna? Ker očitno ne deluje:)
Torej, našel sem primerno kodo za javascript, jo vstavil in vse povezal, vendar ne deluje. Sam ne morem najdi napake.
<?php
mysql_connect("localhost",nekuporabnik","nekogeslo");
mysql_select_db("baza1");
mysql_query("SET NAMES 'utf8';");
mysql_query("SET CHARACTER SET 'utf8';"); 

echo "<html>
<head>
<title>test</title>

<link href='css/style.css' rel='stylesheet' type='text/css'>
<script type='text/javascript' src='jquery-1.4.2.min.js'></script>
<script type='text/javascript'>
			
   			$ (function() {
   			$ (#\"".$rSkupine['ime']."\").click(function() {
   			$ (#\"".$rSkupine['ime']."\") .toggle('fast');   	
   			});
   			});
   		</script>


  
</head>
<body>";





if ($_GET['idb']) {
	$qNekaj = mysql_query("SELECT * FROM izdelki WHERE id_i = ".mysql_real_escape_string($_GET['idb'])."");
	$rNekaj = mysql_fetch_array($qNekaj);
	
	echo "<h1>".$rNekaj['ime']."</h1><p>".$rNekaj['opis']."</p><img src=\"slike/".$rNekaj['slika']."\" />";
} elseif (!$_POST['klik']) {
echo "<form method=\"post\" action=\"test.php\">";

$qSkupine = mysql_query("SELECT ime, id_s FROM skupine WHERE ime = 'Starost' ORDER BY ime");
while ($rSkupine = mysql_fetch_array($qSkupine)) {
    echo "<p><b><font size='4'>";
	echo $rSkupine['ime']."<br />";
	echo "</b></font></p>";
	
	$qMoznosti = mysql_query("SELECT ime, id_m FROM moznosti WHERE id_s = ".$rSkupine['id_s']." ORDER BY ime");
	while ($rMoznosti = mysql_fetch_array($qMoznosti)) {
		echo "<input type=\"checkbox\" name=\"".$rSkupine['id_s']."[]\" value=\"".$rMoznosti['id_m']."\" /> ".$rMoznosti['ime']."<br />";
	}
}
	

$qSkupine = mysql_query("SELECT ime, id_s FROM skupine WHERE ime != 'Starost' ORDER BY ime");
while ($rSkupine = mysql_fetch_array($qSkupine)) {
    echo "<p><b><font size='4'>";
	echo "<br />";
	echo $rSkupine['ime']."&nbsp;<button id=\"".$rSkupine['ime']."\">Prikaži</button>";
	echo "<br />";
	echo "</b></font></p>";
	echo "<div id=\"".$rSkupine['ime']."\">";
	
	$qMoznosti = mysql_query("SELECT ime, id_m FROM moznosti WHERE id_s = ".$rSkupine['id_s']." ORDER BY ime");
	while ($rMoznosti = mysql_fetch_array($qMoznosti)) {
		echo "<input type=\"checkbox\" name=\"".$rSkupine['id_s']."[]\" value=\"".$rMoznosti['id_m']."\" /> ".$rMoznosti['ime']."<br /></div>";
	}
}
echo "<br />";
echo "<input type=\"submit\" value=\"Diagnosticiraj\" name=\"klik\" />";
echo "</form>";


Torej, z javascriptom skrivam/odkrivam nek DIV, ki ima ime .$rSkupine['ime']. vendar ne vem, če sem vse skupaj prav speljal, sploh pri poimenovanju in javascriptu.
:P

t3hn0 ::

1. googlanja se navadi ker ti prakticno ponuja vse
2. najbolje je da se ti naucis uporabljat zadevo, ne pa da ti mi damo direktno resitev - to se naucis ob kaksnem tutorialu (ce bi zelel uporabljat jQuery imas clanke na njihovi strani)

3. da v glavi lahko uporabljas spremenljivko $rSkupine['ime'], moras imeti nek sql query pred tem, da nastavis vrednost spremenljivki (vrstici 16. in 17.)
4. na koncu ti manjka "}" (zakljucek za pogoj iz 36. vrstice)
5. v glavi si definiral da jQuery gleda samo polja ki imajo id $rSkupine['ime'], vendar ta id na strani ne obstaja! Ce mislis uporabljat name, moras to mal spremenit v $('input[name=<?= $rSkupine['ime']; ?>]')
6. ne mores za trigger in rezultat uporabljat isti ime inputa! npr: prvi checkbox ki bo nato aktiviral/prikazal naslednjega mora imeti svoje ime...npr: klikniMe, nato pa definiras za to funkcijo da ob kliku na $('#klikniMe').click() {} naredi nekaj...
^.^

dinozaver7 ::

Ok, s super pomočjo t3hn0ta sem prišel skoraj do končane kode. Imam samo še 2 problema:
1. Ko kliknem na gumb pokaži, mi checkboxe skrije samo za sekundo, potem pa refresha in spet skrije.
2. Dela samo prvi gumb (pri prvem divu).
<html><head><title>PHP TEST</title><link href='css/style.css' rel='stylesheet' type='text/css'>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type='text/javascript' src='jquery-1.4.2.min.js'></script>

   			</head><body>



<?php

if ($_GET['idb']) {
	$qNekaj = mysql_query("SELECT * FROM izdelki WHERE id_i = ".mysql_real_escape_string($_GET['idb'])."");
	$rNekaj = mysql_fetch_array($qNekaj);
	
	echo "<h1>".$rNekaj['ime']."</h1><p>".$rNekaj['opis']."</p><img src=\"slike/".$rNekaj['slika']."\" />";
} elseif (!$_POST['klik']) {
echo "<form method=\"post\" action=\"action.php\">";



	

$skupinaQuery[] = $eSkupine['id'];
$qSkupine = mysql_query("SELECT ime, id_s FROM skupine ORDER BY ime");
while ($rSkupine = mysql_fetch_array($qSkupine)) {
    echo "<p><b><font size='4'>";
	echo "<br />";
	echo $rSkupine['ime']."";
	?>
	
	<button id='pokazi<?php echo $eSkupine['id'];?>'>Prikaži</button>
	
	<?php
	echo "<br />";
	echo "</b></font></p>";
	?>
	
<div id="test<?php echo $eSkupine['id'];?>" style="display: none" >

	<?php
	
	$qMoznosti = mysql_query("SELECT ime, id_m FROM moznosti WHERE id_s = ".$rSkupine['id_s']." ORDER BY ime");
	while ($rMoznosti = mysql_fetch_array($qMoznosti)) {
		echo "<input type=\"checkbox\" name=\"".$rSkupine['id_s']."[]\" value=\"".$rMoznosti['id_m']."\" /> ".$rMoznosti['ime']."<br />";
		}
	?>
		</div>
	<?php
}
echo "<br />";
echo "<input type=\"submit\" value=\"Potrdi\" name=\"klik\" />";
echo "</form>";
} elseif ($_POST['klik']) {

$idSkupineZaStarost = 10;

	function vrniKriterij($stevilo) {
		if ($stevilo == 1) {
			return "1 kriteriju";
		} elseif ($stevilo == 2) {
			return "2 kriterijema";
		} else {
			return $stevilo." kriterijem";
		}
	}
	// generiranje dinamicnega sql zahtevka
	$genQuery = "";
	$st = 0;
	foreach ($_POST AS $post => $key) {
		if (is_array($key)) {
			foreach ($key AS $posta => $keya) { // keya moznost, posta skupina
				if (empty($genQuery)) {
					$genQuery .= " WHERE ((id_m = ".$keya.")";
				} else {
					$genQuery .= " OR (id_m = ".$keya.")";
				}
			}
		}
	}
	
	//echo ("SELECT COUNT(*) AS count, id_i FROM izdelki_moznosti".$genQuery." GROUP BY id_i ORDER BY COUNT(*) DESC");
	$najboljUstreza = true;
	$qNajboljsi = mysql_query("SELECT COUNT(*) AS count, id_i FROM izdelki_moznosti".$genQuery.") GROUP BY id_i HAVING count > 1 ORDER BY count DESC LIMIT 10");
	while ($rNajboljsi = mysql_fetch_array($qNajboljsi)) {
		$qSladoled = mysql_query("SELECT ime, id_i FROM izdelki WHERE id_i = ".$rNajboljsi['id_i']."");
		$rSladoled = mysql_fetch_array($qSladoled);
		
		if ($najboljUstreza == true) {
			echo "<b><font size='3px'>Najverjetneje imate:</font></b>";
			echo "<div style=\"border: 2px solid #4389c1; width: auto; padding: 5px;\">";
		}
		
		echo "<a href=\"/diagnoza.php?idb=".$rSladoled['id_i']."\">".$rSladoled['ime']."</a><br />";
	
		foreach ($_POST AS $post => $key) {
			if (is_array($key)) {
				foreach ($key AS $posta => $keya) { // keya moznost, posta skupina
					$qKriterij = mysql_query("SELECT * FROM izdelki_moznosti WHERE id_m = ".$keya." AND id_i = ".$rNajboljsi['id_i']."");
					if (mysql_num_rows($qKriterij) > 0) {
						$rKriterij = mysql_fetch_array($qKriterij);
						if ($rKriterij['id_s'] != $idSkupineZaStarost) {
							$qPlus = mysql_query("SELECT ime FROM moznosti WHERE id_m = ".$keya."");
							$rPlus = mysql_fetch_array($qPlus);
							echo "<nobr>";
							//echo mb_strtolower($rPlus['ime']." ");
							echo $rPlus['ime']." ";
							echo "<img src=\"kljukica.png\" alt=\"Kljukica\" />";
							echo "</nobr>";
						}
					}
				}
			}
		}
		echo "<br />";
		
		if ($rNajboljsi['count'] != $st) {
			foreach ($_POST AS $post => $key) {
				if (is_array($key)) {
					foreach ($key AS $posta => $keya) { // keya moznost, posta skupina
						$qKriterij = mysql_query("SELECT * FROM izdelki_moznosti WHERE id_m = ".$keya." AND id_i = ".$rNajboljsi['id_i']."");
						if (mysql_num_rows($qKriterij) == 0) {
							$qPlus = mysql_query("SELECT ime FROM moznosti WHERE id_m = ".$keya." AND id_s != ".$idSkupineZaStarost."");
							if (mysql_num_rows($qPlus) > 0) {
								$rPlus = mysql_fetch_array($qPlus);
								echo "<nobr>";
								//echo mb_strtolower($rPlus['ime']." ");
								echo $rPlus['ime']." ";
								echo "<img src=\"krizec.png\" alt=\"Krizec\" />";
								echo "</nobr>";
							}
						}
					}
				}
			}
		}
		if ($najboljUstreza == true) {
			echo "</div>";
			$najboljUstreza = false;
		}
		echo "<br />";
		echo "<hr />";
		echo "<br />";
	}
	echo "<br />";
	echo "Prikazanih je največ 10 rezultatov. V iskalno poizvedbo so zajete starosti, vendar v rezultatih niso prikazane zaradi preglednosti. <a href=\"javascript: history.go(-1)\">Nazaj</a>";
}



mysql_close();


?>
<script type='text/javascript'>
   $(document).ready(function() {
		
		
<?php

foreach($skupinaQuery as $id) {

echo "$ ('#pokazi".$id."').click(function() { $ ('#test".$id."') .show('slow'); $('#pokazi".$id."').hide('fast'); });";

}

?>
	
		
	});
</script>

</body>

</html>
:P

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[php] preverjanje online uporabnikov

Oddelek: Programiranje
262041 (1697) cobrica
»

sql injection [PHP + mysql]

Oddelek: Informacijska varnost
111832 (1557) Lion29
»

skripta za članke

Oddelek: Izdelava spletišč
141264 (1086) cahahopie
»

PHP help!

Oddelek: Programiranje
251713 (1551) rc-car
»

MySQL & PHP napaka..

Oddelek: Programiranje
211707 (1522) lordgreg

Več podobnih tem