Autor Zpráva
Generation
Profil *
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
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 *
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 *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0