Autor Zpráva
jojo
Profil *
nemôžem prísť na chybu... ktorá je Call to a member function scJavaScript() on a non-object ale pritom ani do js_script sa nedostane a už neviem kde môže byť chyba. Trieda by mala fungovať tak že pri jej zavolaní zistí či už bola daná cesta alebo script použití ak áno tak sa ani nezapíše ostáva prázdni ak nie tak sa zapíše aj sa vypíše.
echo js_script("a","src")."--";
echo js_script("a","src")."--";
echo js_script("as","src")."--";
$cScript = new UnJavaScript();

function js_script($sc_name, $skr="src") {
  global $cScript;
  $retunr = $cScript->scJavaScript($sc_name, $skr );
  return $retunr;
}

class UnJavaScript
{
    var $jsTent = array( );
    
    function addtent( $tent ) {
        $this->jsTent = array_merge( $this->jsTent, $tent );
    }

    function scJavaScript($sc_name="", $skr="script" ) { //script, src
        $je = true; //ak nexistuje tak je true
        foreach($this->jsTent as $key) {
          if ($key == $sc_name) $je = false;
        }
        if($je) {
          $this->addtent( array($sc_name));
          if($skr == "script") {
            return "<script type=\"text/javascript\">".$sc_name."</script>";
          } elseif($skr == "src") {
            return "<script type=\"text/javascript\" src=\"".$sc_name."\"></script>";
          }
        }
    }
}
Tori
Profil
jojo:
V době volání funkce js_script (ř.1) neexistuje proměnná $cScript. Tu funkci bych úplně dala pryč a přímo volala metodu třídy.
jojo
Profil *
funkciu som odstránil a stále mi to niak nejde a neviem prečo bud tam bude niečo zle alebo neviem už vôbec
Tori
Profil
Mně to takhle funguje, nevím proč vám ne.
class UnJavaScript { /* .... definice třídy */  }
$cScript = new UnJavaScript();

echo $cScript->scJavaScript("a","src")."--";
echo $cScript->scJavaScript("a","src")."--";
echo $cScript->scJavaScript("as","src")."--";

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: