Autor Zpráva
pajka
Profil *
Zdravím,
Stáhnul jsem si admin šablonu https://creativemarket.com/Medialoot/236894-Lumino-Pro-Bootstrap-Admin-Template
A jsou tam grafy,ale nevím jak můžu z databáze vzít data a vložit je do toho js.

do data by měli jít ty údaje z databáze,ale je tam místo toho randomScalingFactor() náhodné čísla

var randomScalingFactor = function(){ return Math.round(Math.random()*1000)};
    
    var lineChartData = {
            labels : ["January","February","March","April","May","June","July"],
            datasets : [
                {
                    label: "My First dataset",
                    fillColor : "rgba(220,220,220,0.2)",
                    strokeColor : "rgba(220,220,220,1)",
                    pointColor : "rgba(220,220,220,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(220,220,220,1)",
                    data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
                },



bylo by lepší to převést do php souboru než to dělat v JS?
juriad
Profil
Ten 14. řádek bude:
data: <?php echo json_encode(array(1, 2, 5, 3, 0, 4)); ?>
kde za to array dosadíš pole hodnot získaných z databáze.
pajka
Profil *
zkoušel jsem to takto dosadit,ale nezobrazí se mi žádné hodnoty

var randomScalingFactor = function(){ return Math.round(Math.random()*1000)};
    
    var lineChartData = {
            labels : <?php echo json_encode($hlavicky); ?>,
            datasets : [
                {
                    label: "My First dataset",
                    fillColor : "rgba(220,220,220,0.2)",
                    strokeColor : "rgba(220,220,220,1)",
                    pointColor : "rgba(220,220,220,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(220,220,220,1)",
                    data : <?php echo json_encode($radky); ?>
juriad
Profil
pajka:
Zkontoluj, co se zobrazí ve zdrojovém kódu v prohlížeči. Toto je v podstatě správně; netuším však co je v těch proměnných (přesně), ani jak se ten JS používá.
pajka
Profil *
ve zdrojovém kódu taky nevypíše žádné hodnoty

tak to vypadá:

$(document).ready(function () {
        var source =
        {
             url: 'data.php'
        };

var randomScalingFactor = function(){ return Math.round(Math.random()*1000)};
    
    var lineChartData = {
 labels : <?php echo json_encode($hlavicky); ?>,
            datasets : [
                {
                    label: "My First dataset",
                    fillColor : "rgba(220,220,220,0.2)",
                    strokeColor : "rgba(220,220,220,1)",
                    pointColor : "rgba(220,220,220,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(220,220,220,1)",
                    data : <?php echo json_encode($radky); ?>


a v souboru data mám výpis z databáze:

require "config.php";    
$vyber = MySQL_Query("SELECT * FROM(SELECT user ,DATE_FORMAT(day,'%d.%m.') as day,id FROM  chilli_stats_1_Day ORDER BY id DESC limit 20) t order by id asc") or die(mysql_error()); 


while ($zaznam2=MySQL_Fetch_Array($vyber)){
  $hlavicky .= "$zaznam2[day]";
  $radky .= "$zaznam2[user]";
}
_es
Profil
[#5] pajka:
Juriad myslel výsledný JS kód, ktorý si zobrazíš v prehliadači.
juriad
Profil
pajka:
Aha, $hlavicky a $radky mají být pole. Tedy něco jako:
  $hlavicky[] = $zaznam2['day'];
  $radky[] = $zaznam2['user'];

Ten vnější dotaz vůbec nepotřebuješ. order by id můžeš přidat do toho vnitřního.
pajka
Profil *
v souboru chart-data.js mám zapsané toto a mělo by to být funkční,ale není. Jsem v tom nějak ztracený

<?
require "config.php";    
$vyber = MySQL_Query("SELECT * FROM(SELECT user ,DATE_FORMAT(day,'%d.%m.') as day,id FROM  chilli_stats_1_Day ORDER BY id DESC limit 20) t order by id asc") or die(mysql_error()); 


while ($zaznam2=MySQL_Fetch_Array($vyber)){
  $dataset1[] = array($zaznam2['day'],);
   $dataset2[] = array($zaznam2['user']);
  
}

?>


<script type="text/javascript">

var randomScalingFactor = function(){ return Math.round(Math.random()*1000)};
    
    var lineChartData = {
            labels : <?php echo json_encode($dataset1); ?>,
            datasets : [
                {
                    label: "My First dataset",
                    fillColor : "rgba(220,220,220,0.2)",
                    strokeColor : "rgba(220,220,220,1)",
                    pointColor : "rgba(220,220,220,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(220,220,220,1)",
                    data : <?php echo json_encode($dataset2); ?>,
                },
                
            ]

        }
Fisir
Profil
Reaguji na pajku:
Ten soubor se opravdu jmenuje chart-data.js? Jestli ano, tak příčina problému je v tom, že PHP ten soubor vůbec nezpracovává. Do souboru .htaccess přidej toto:

<FilesMatch "^chart-data\.js$">
AddHandler php5-script .js
</FilesMatch>

(Netestováno, píšu z mobilu. Pokud něco nefunguje, konzultuj to s dokumentací.)
tiso
Profil
Fisir: nezmysel, správne riešenie je premenovať súbor.
Fisir
Profil
Reaguji na tisa:
Za správná řešení pokládám oboje.

+ nemusí předělávat odkazy
+ nemusí zjišťovat, jak změnit jazyk zvýrazňování kódu v IDE

Upřesni, prosím.
tiso
Profil
Fisir: chart-data.js je nesprávny názov súboru, pretože jeho vygenerovaná podoba neobsahuje čistý Javascript ale HTML (<script type="text/javascript">).
Fisir
Profil
Reaguji na tisa:
Ano, pokud to není chart-data.js, pajka neprojde podmínkou na druhém řádku mého příspěvku, na rozdíl od lidí kteří budou mít podobný problém, ale JavaScript v separátním souboru.
tiso
Profil
Fisir: nerozumiem akých ľudí spomínaš. Kde si ich zobral?
Fisir
Profil
Reaguji na tisa:
Mám na mysli ty lidi, které někdy v budoucnu postihne podobná potíž a skrz vyhledávač najdou toto vlákno a následně si podle svého uvážení vyberou optimání radu.
tiso
Profil
Fisir: a tú svoju radu považuješ za optimálnu? Mať JS súbor spracovávany PHP processorom obsahujúci HTML?
pajka
Profil *
zkoušel jsem to vyřešit podle tady toho http://www.jqwidgets.com/bind-jquery-chart-to-mysql-database-using-php/ ,ale taky nic. Nevím co pořád dělám špatně
Fisir
Profil
Reaguji na tisa:
JS soubor obsahující HTML je z principu blbost. Já opravdu nechápu, co řešíš.
pajka
Profil *
čili tohle by nemělo být v souboru JS <script type="text/javascript">...... </script> ? Ale jak tam zapíšu to PHP potom?
pajka
Profil *
takže chyba je v zápisu kde jsem dál PHP kód do JS souboru tedy ho nemůže přečíst. Takže jsem potom zkusil udělat jak mi poradil Fisir kde jsem vytvořil .htaccess ale nic se nestalo, tak jak jinak to můžu zapsat ten php kód?
_es
Profil
pajka:
Ale jak tam zapíšu to PHP potom?
Nijako, PHP kód píš do súborov s koncovkou .php.
pajka
Profil *
to je jasne ale jak je spolu potom spojím. Ja JS moc neumím,ale našel jsem něco takového. To jsem vložil do toho js souboru

function loadLinks() {
  $.post("data.php", function(data) {
      dp.links.list = data;
      dp.update();
  });
}

no a mám pak soubor data.php kde mám zapsané ten výpis z databáze
Chamurappi
Profil
Reaguji na pajku:
Proč to chceš stahovat AJAXem? Proč ten skript prostě nedáš interně přímo do stránky (která asi je PHP)?
pajka
Profil *
to už jsem zkoušel,ale tak to nejde
Chamurappi
Profil
Reaguji na pajku:
Zřejmě jsi to zkoušel špatně. Jak se to projevovalo, že to nešlo? Hlásilo ti to nějakou chybu v konzoli?

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: