Autor | Zpráva | ||
---|---|---|---|
Generation Profil * |
#1 · Zasláno: 25. 2. 2015, 19:15:34 · Upravil/a: Generation
Zdravím přítomné rádce.
Potřeboval bych od Vás upravit script protože si s tím lámu hlavu už pěkně dlouho a nemohu na to vůbec přijít. Následující script, první funkce: Vyberu tabulku z databáze, druhá funkce: vyberu interpreta z dané tabulky, 3 funkce by měla vybrat skladbu z dané tabulky a z daného interpreta. První 2 funkce jsou funkční ale ani za boha nemohu přijít na to jak do 3 funkce předat proměnnou tu tabulku. Viz scripty.: $(document).ready(function() { $('#wait_1').hide(); $('#drop_1').change(function(){ $('#wait_1').show(); $('#result_1').hide(); $.get("func.php", { func: "drop_1", drop_var: $('#drop_1').val() }, function(response){ $('#result_1').fadeOut(); setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400); }); return false; }); }); function finishAjax(id, response) { $('#wait_1').hide(); $('#'+id).html(unescape(response)); $('#'+id).fadeIn(); } function finishAjax_tier_three(id, response) { $('#wait_2').hide(); $('#'+id).html(unescape(response)); $('#'+id).fadeIn(); } <form action="" method="post"> <select name="drop_1" id="drop_1"> <option value="" selected="selected" disabled="disabled">Vyber interpreta</option> <?php getTierOne(); ?> </select> <span id="wait_1" style="display: none;"> <img alt="Please Wait" src="ajax-loader.gif"/> </span> <span id="result_1" style="display: none;"></span> <span id="wait_2" style="display: none;"> <img alt="Please Wait" src="ajax-loader.gif"/> </span> <span id="result_2" style="display: none;"></span> </form> <?php ini_set('display_errors',1); error_reporting(E_ALL); //************************************** // Page load dropdown results // //************************************** function getTierOne() { $dbname = 'country'; $sql = "show tables from $dbname where tables_in_$dbname in ('domaci','zahranicni','others') "; $result = mysql_query($sql); if (!$result) { echo "DB Error, could not list tables\n"; echo 'MySQL Error: ' . mysql_error(); exit; } while ($tier = mysql_fetch_row($result)) { echo '<option value="'.$tier[0].'">'.$tier[0].'</option>'; } } //************************************** // First selection results // //************************************** if($_GET['func'] == "drop_1" && isset($_GET['func'])) { drop_1($_GET['drop_var']); } function drop_1($drop_var) { include_once('settings.php'); $result = mysql_query("SELECT DISTINCT `Contentgroup` FROM $drop_var ORDER BY Contentgroup ASC") or die(mysql_error()); echo '<select name="drop_2" id="drop_2"> <option value=" " disabled="disabled" selected="selected">Interpret</option>'; while($drop_2 = mysql_fetch_array( $result )) { echo '<option value="'.$drop_2['Contentgroup'].'">'.$drop_2['Contentgroup'].'</option>'; } echo '</select>'; echo "<script type=\"text/javascript\"> $('#wait_2').hide(); $('#drop_2').change(function(){ $('#wait_2').show(); $('#result_2').hide(); $.get(\"func.php\", { func: \"drop_2\", drop_var: $('#drop_2').val() }, function(response){ $('#result_2').fadeOut(); setTimeout(\"finishAjax_tier_three('result_2, result_1', '\"+escape(response)+\"')\", 400); }); return false; }); </script>"; } //************************************** // Second selection results // //************************************** if($_GET['func'] == "drop_2" && isset($_GET['func'])) { drop_2($_GET['drop_var']); } function drop_2($drop_var) { include_once('settings.php'); $result = mysql_query("SELECT Title FROM $tabulka_z_databaze WHERE Contentgroup='".mysql_real_escape_string($drop_var)."' ") or die(mysql_error()); echo '<select name="drop_3" id="drop_3"> <option value=" " disabled="disabled" selected="selected">Odkaz</option>'; while($drop_3 = mysql_fetch_array( $result )) { echo '<option value="'.$drop_3['Title'].'">'.$drop_3['Title'].'</option>'; } echo '</select> '; echo $_GET['drop_var']; echo '<input type="submit" name="submit" value="Submit" />'; } ?> Děkuji za pomoc V té třetí funkce je pro orientaci v dotazu napsáno $tabulka_z_databaze
|
||
Keeehi Profil |
#2 · Zasláno: 25. 2. 2015, 19:32:45
Generation:
Nepotěším tě. Máš špatně navrženou databázi, takže tě čeká hodně práce. Bude potřeba ji opravit a pak podle toho předělat všechny dotazy. Takže jak teď tvoje databáze vypadá? |
||
Generation Profil * |
#3 · Zasláno: 25. 2. 2015, 19:46:17 · Upravil/a: Generation
Keeehi:
To si nedovedu představit, protože mám v databázi statisíce záznamů. Buď se budu snažit s vaší pomocí vyrešit tento problém, nebo holt nebudu moci tento systém použít. Opravdu si netroufám komplet předělat databázi z čehož vyplývá předělat komplet cely web. Osobně si myslím že pomocí toho ajaxu je potřeba předat tu proměnou tabulky do te třetí funkce. Ale ja vůbec nevím jak. |
||
Generation Profil * |
#4 · Zasláno: 26. 2. 2015, 04:51:07
Vyřešil jsem to tak že jsem tu proměnnou kde je název tabulky uložil do session. Nevím jestli je to správné a bezpečné ale takhle je to funkční.
Můžete se vyjádřit o bezpečnosti atd. |
||
Keeehi Profil |
#5 · Zasláno: 26. 2. 2015, 04:56:55
Bezpečnostní riziko by tam nemělo být. Pravděpodobně to nebude fungovat ve více oknech prohlížeče. Nikomu bych toto řešení nedoporučil.
|
||
Časová prodleva: 9 let
|
0