Gå til innhold

Thomas.

Medlemmer
  • Innlegg

    1 497
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av Thomas.

  1. Ved å legge inn link til jquery.js fila, fikk jeg opp $felt2 -> $felt4 når jeg trykker på det øverste jeg får opp fra $felt1. Men får ikke opp noe fra di andre. Noen god ide ?

     

    Alle må ha en unik ID.

     

    Eksempel:

    <script type="text/javascript" src="/public/scripts/min/jquery-1.7.2.min.js"></script>
    <style>
    .toggle_handler:hover { cursor:pointer; }
    .toggle_content { display:none; }
    </style>
    <article class="each-name">
    <h3 class="toggle_handler" id="11">1111111111111111</h3>
    <div class="toggle_content" id="12">
    	1111111111111111111111111
    </div>
    </article>
    <article class="each-name">
    <h3 class="toggle_handler" id="21">222222222222222222</h3>
    <div class="toggle_content" id="22">
    	222222222222222222222
    </div>
    </article>
    <article class="each-name">
    <h3 class="toggle_handler" id="31">3333333</h3>
    <div class="toggle_content" id="32">
    	333333333333333
    </div>
    </article>
    <script>
    /**
     * h3 - id på h3 (toggle_handler)
     * div - id på div (toggle_content)
     */
    $.sh = function(h3, div) {
    	var handler = '#' + h3;
    	var content = '#' + div;
    	$(handler).click(function() {
    		$(content).first().slideToggle('slow');
    	});
    }
    $(document).ready(function() {
    	$.sh(11, 12);
    	$.sh(21, 22);
    	$.sh(31, 32);
    });
    </script>

  2. Det er går fint ann å bruke htmlspecialchars til det du beskriver i førsteposten.

    Vil gi dette resultatet inni et textarea:

    <?php

    $antall = 59644;

    echo "Dette er et bra forum.\nDen har $antall medlemmer.";

    ?>

     

    <textarea rows="10" cols="40">
    <?php
    echo htmlspecialchars('<?php
    $antall = 59644;
    echo "Dette er et bra forum.\nDen har $antall medlemmer.";
    ?>');
    ?>
    </textarea>

  3. Har du sett på extends og parent? http://php.net/manua...word.parent.php

    Et eksempel:

    <?php
    class xpdo {
    public function method() {
     echo 'funksjon i xpdo';
    }
    }
    class minKlasse extends xpdo {
    /** når vi kaller minKlasse **/
    public function __construct() {
     parent::method();
    }
    }
    // Echoer 'funksjon i xpdo'
    new minKlasse();
    

     

    Eventuelt hadde metoden i xpdo vært statisk kan du kalle den direkte uten noe mer:

    <?php
    class xpdo {
    static function method() {
     echo 'funksjon i xpdo';
    }
    }
    class minKlasse {
    /** når vi kaller minKlasse **/
    public function __construct() {
     xpdo::method();
    }
    }
    // Echoer 'funksjon i xpdo'
    new minKlasse();
    

  4. Men vill han ikke loop den der og legge til 1 og 1 der?

     

    Du kan blandt annet bruke implode funksjonen. Her er et eksempel som passer til oppsettet ditt:

    <?php
    $score = $_POST['score'];
    $score = implode('|', $score);
    echo 'Du valgte: ' . $score . '<br>';
    ?>
    <br>
    <form method="post">
    <?php
    /** gennerer noen random checkboxer **/
    for($i = 1; $i <= mt_rand(5,15); $i++)
     echo 'Val ' . $i . ' <input type="checkbox" name="score[]" value="' . $i . '"><br>';
    ?>
    <input type="submit" name="submit" value="test">
    </form>
    
    

    $score er nå ferdig formatert "tall|tall|tall".. Slik at du kan bruke den i sql-spørringen din. Du burde også sjekke om inputene faktisk er et tall.

  5. Btw, jeg må vel spørre om jeg har tillatelse til å bruke denne koden i nettsiden min? Bare sånn at jeg ikke blir saksøkt en gang om den skulle vise seg å trekke litt folk :p

    Sånn, for ordens skyld. Har jeg din tillatelse til å bruke denne (om du har skrevet den selv)?

    Og, om du har hentet deler av den fra et annet sted. Har jeg da tillatelse fra dem til å bruke den? Og isåfall, hvilken side er den hentet fra?

     

    Takker igjen for all hjelp, og håper du er villig til å hjelpe meg videre om jeg skulle trenge det ;)

     

    Koden tok jeg fra deg, og bare la til javascript. Så fritt fram å bruke den :)

    Bare spørre hvis du trenger mer hjelp.

     

    Kan ikke anbefale noen bok for HTML eller Javascript, søk heller opp hva du lurer på/tutorials. I 99% av tilfellene vil du finne et svar på det du lurer på, og forhåpentligvis lærer du noe av det :)

  6. Det er riktig at du må bruke javascript (må ikke, finnes flere muligheter - men siden du ønsket javascript laget jeg et eksempel med det) :) Har laget et eksempel med jQuery. Du avslutter forresten ikke option-tagene dine i koden din.

     

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
    /** Når vi trykker søk **/
    $('#sok').click(function(e) {
     e.preventDefault();
     /** Hva vi skriver inn i søkeboksen **/
     var sokString = $('.sokString').val();
     /** Hva vi velger i dropdownlisten **/
     var sokMetode = $('.searchengine').val();
     var url = '';
     switch(sokMetode) {
      /** Når vi har valgt google **/
      case "google":
        url = 'http://www.google.com/search?q=' + sokString;
      break;
      /** Wikipedia **/
      case "wikipedia":
        url = 'http://en.wikipedia.org/wiki/Special:Search?search=' + sokString;
      break;
     }
     /** Videresend til riktig URL **/
     window.location = url;
    });
    });
    </script>
    </head>
    <body>
    <form name="mainsearch" id="mainsearch" method="get">
    <tr>
    <td>
    <input type="text" id="searchfield" name="q" size="25" maxlength="255" value="" class="sokString">
    </td>
    </tr>
    <select name="searchengine" class="searchengine">
    <option value="google">Google</option>
        <option value="wikipedia">Wikipedia</option>
    </select>
    <tr>
    <td align="center" style="font-size:75%">
    <button id="sok">Søk</button>
    </td>
    </tr>
    </form>
    </body>
    </html>
    

    • Liker 1
  7. Du burde se litt på forskjellige joins! Da kan du hente og matche data fra andre tabeller basert på innholdet i forskjellige rader.

     

    Her har jeg laget et eksempel, hvor jeg henter info når fagid'en = 1:

    SELECT
    t1.tittel AS FagTittel,
    t2.id AS BrukerSomLagetFaget,
    COUNT(t3.id) AS AntallKapitler
    FROM
    fag AS t1
    LEFT JOIN users AS t2
     ON t1.bruker_ID = t2.id
    LEFT JOIN kapitler AS t3
     ON t1.id = t3.fag_ID
    WHERE
    t1.id = 1

     

    Med denne spørringen kan du hente ut tittelen på faget med $item['FagTittel'], Brukeren som har laget kapitelet sin ID med $item['BrukerSomLagetFaget'] og $item['AntallKapitler'] for hvor mange kapitler det finnes i det faget.

     

    Database:

     

    -- --------------------------------------------------------

    -- Host: 127.0.0.1

    -- Server version: 5.1.53-community-log - MySQL Community Server (GPL)

    -- Server OS: Win64

    -- HeidiSQL version: 7.0.0.4140

    -- Date/time: 2012-06-21 15:50:25

    -- --------------------------------------------------------

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

    /*!40101 SET NAMES utf8 */;

    /*!40014 SET FOREIGN_KEY_CHECKS=0 */;

    -- Dumping database structure for hei

    CREATE DATABASE IF NOT EXISTS `hei` /*!40100 DEFAULT CHARACTER SET latin1 */;

    USE `hei`;

     

    -- Dumping structure for table hei.fag

    CREATE TABLE IF NOT EXISTS `fag` (

    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

    `tittel` int(10) unsigned DEFAULT NULL,

    `bruker_ID` int(10) unsigned DEFAULT NULL,

    PRIMARY KEY (`id`)

    ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

    -- Dumping data for table hei.fag: 0 rows

    /*!40000 ALTER TABLE `fag` DISABLE KEYS */;

    INSERT IGNORE INTO `fag` (`id`, `tittel`, `bruker_ID`) VALUES

    (1, 666, 1),

    (2, 777, 2),

    (3, 888, 2),

    (4, 999, 2);

    /*!40000 ALTER TABLE `fag` ENABLE KEYS */;

     

    -- Dumping structure for table hei.kapitler

    CREATE TABLE IF NOT EXISTS `kapitler` (

    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

    `navn` int(10) unsigned DEFAULT NULL,

    `fag_ID` int(10) unsigned DEFAULT NULL,

    `bruker_ID` int(10) unsigned DEFAULT NULL,

    PRIMARY KEY (`id`)

    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

    -- Dumping data for table hei.kapitler: 0 rows

    /*!40000 ALTER TABLE `kapitler` DISABLE KEYS */;

    INSERT IGNORE INTO `kapitler` (`id`, `navn`, `fag_ID`, `bruker_ID`) VALUES

    (1, 111, 1, 1),

    (2, 222, 1, 1),

    (3, 333, 2, 2);

    /*!40000 ALTER TABLE `kapitler` ENABLE KEYS */;

     

    -- Dumping structure for table hei.users

    CREATE TABLE IF NOT EXISTS `users` (

    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

    `navn` int(10) unsigned DEFAULT NULL,

    PRIMARY KEY (`id`)

    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

    -- Dumping data for table hei.users: 0 rows

    /*!40000 ALTER TABLE `users` DISABLE KEYS */;

    INSERT IGNORE INTO `users` (`id`, `navn`) VALUES

    (1, 123),

    (2, 321);

    /*!40000 ALTER TABLE `users` ENABLE KEYS */;

    /*!40014 SET FOREIGN_KEY_CHECKS=1 */;

    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

     

     

  8. Du bør se litt på jquery! F.eks funksjonene hide, fadein/out og show.

    Har raskt satt sammen et eksempel for deg som du kan se på og teste :)

     

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
    // Når s1 trykkes
    $('#s1').click(function() {
     // Hent value fra radio med name="r1"
     var val = $('input[name=r1]:checked').val();
     // Hvis du har valgt nr 1
     if(val == 1) {
      // Skjul steg1, fade in steg21
      $('#steg1').hide();
      $('#steg21').fadeIn('slow');
     }
     // Hvis du har valgt nr 2
     if(val == 2) {
      // Skjul steg1, fade inn steg 22
      $('#steg1').hide();
      $('#steg22').fadeIn('slow');
     }
     // Return false slik at siden ikke refresher når du trykker s1
     return false;
    });
    $('#s21').click(function() {
     var val = $('input[name=r21]:checked').val();
     if(val == 1) {
      $('#steg21').hide();
      $('#info11').fadeIn('slow');
     }
     if(val == 2) {
      $('#steg21').hide();
      $('#info12').fadeIn('slow');
     }
     return false;
    });
    $('#s22').click(function() {
     var val = $('input[name=r22]:checked').val();
     if(val == 1) {
      $('#steg22').hide();
      $('#info21').fadeIn('slow');
     }
     if(val == 2) {
      $('#steg22').hide();
      $('#info22').fadeIn('slow');
     }
     return false;
    });
    });
    </script>
    <div id="steg1">
    <form>
    	 1<input type="radio" value="1" name="r1"><br>
    	 2<input type="radio" value="2" name="r1"><br>
    		    <input type="submit" id="s1"><br>
        </form>
    </div>
    <div id="steg21" style="display:none;">
    <p>Du valgte 1.</p>
    <form>
    	 1.1<input type="radio" value="1" name="r21"><br>
    	 1.2<input type="radio" value="2" name="r21"><br>
    		    <input type="submit" id="s21" value="Vis info"><br>
        </form>
    </div>
    <div id="steg22" style="display:none;">
    <p>Du valgte 2.</p>
    <form>
    	 2.1<input type="radio" value="1" name="r22"><br>
    	 2.2<input type="radio" value="2" name="r22"><br>
    		    <input type="submit" id="s22" value="Vis info"><br>
        </form>
    </div>
    <div id="info11" style="display:none;">Info om 1.1 her.</div>
    <div id="info12" style="display:none;">Info om 1.2 her.</div>
    <div id="info21" style="display:none;">Info om 2.1 her.</div>
    <div id="info22" style="display:none;">Info om 2.2 her.</div>
    
    

     

    Vis jeg skulle foreslått noe du kan søke på må det vel være noe som "chained radio buttons" eller noe.

  9. Takk for svar. Mulig jeg forklarer dette dårlig. SSE er det jeg bruker og er noe lignende Web Socket(Html5).. Det vil si at innhold blir streamet uten å oppdatere.

     

    Hvis jeg forandrer teksten "innhold" til noe annet og lagrer, så vil innholdet på siden bli automatisk oppdatert ikke som refresh. sendMsg($serverTime, "Innhold");

     

    Thomas, Ajax har ikke denne teknologien. :)

     

    Det er akkurat denne teknologien ajax faktisk har.

  10. Burde stå godt forklart her: http://www.w3schools...ysql_select.asp

    Jeg forstår jo det, men hvordan man skal overføre all data inn i sendMsg($serverTime, "Innhold");

     

    Slik at data blir oppdatert hele tiden. Skjønner?

     

    Sett litt på ajax? F.eks:

     

    var data = 'data';
    $.ajax({
    url: "url.php",
    type: "GET",
    data: data,
    cache: false,
    success:
    function(html) {
    }
    });
    

     

    Kombiner dette med litt jquery så er du på vei :)

  11.  

    PHP's implementation of this operator has left-to-right. I dare you to guess what the following PHP snippet outputs:
    <?php
    $foo = 1;
    print(($foo === 1) ? "uno" : ($foo === 2) ? "dos" : "tres");
    print("\n");
    # (I use the === operator out of good habit.)
    ?>
    

     

    Det er bare å legge else i en parantes så fungerer det akkurat som han vil..

    print(($foo === 1) ? "uno" : (($foo === 2) ? "dos" : "tres"));
    

  12. Har laget et fungerende eksempel :)

    Tanken er å lage et array med ipen med verdi = 1. Hvis den finner samme ip igjen plusser den på 1.

     

    <meta charset="utf-8">
    <?php
    
    $logg = true;
    
    if($logg) {
    $fh = fopen('stat.txt', 'a+');
    fwrite($fh, $_SERVER['REMOTE_ADDR'] . '|');
    fclose($fh);
    }
    
    ?>
    
    Besøkende statistikk: <br />
    <?php
    
    $fil = 'stat.txt';
    $content = file_get_contents($fil);
    
    // Legg data i array
    $array = explode('|', $content);
    // Fjerne tom data på slutten av array
    unset($array[count($array)-1]);
    
    $array2 = array();
    
    for($i = 0; $i <= count($array)-1; $i++) {
    // Hvis array[ip] eksisterer + på 1 på array[ip]
    if(array_key_exists($array[$i], $array2)) {
    	$array2[$array[$i]]++;
    }
    // Hvis array[ip] ikke eksisterer lag array[ip] med verdi = 1
    else {
    	$array2[$array[$i]] = 1;
    }
    }
    
    foreach($array2 as $ip => $antall) {
    echo 'IP: <strong>' . $ip . '</strong> har besøkt nettsiden <strong>' . $antall . '</strong> ganger.<br>';
    }
    
    ?>
    

    • Liker 2
  13. Hvor skal egentlig "min kode" inn i et wxWidgets prosjekt i Code::Blocks?

     

    Funksjonene til GUI'et ligger jo under klassenavnet, f.eks:

    void AppFrame::OnButton1Click2(wxCommandEvent& event)
    {
    //
    }

     

    AppFrame ser slik ut:

    class AppFrame: public wxFrame

     

    Så noen som vet hvor egen kode skal inkluderes og hvordan bruke den?

    Hvis jeg har en klasse som heter Test, og en funksjon i denne som heter TestFunksjon. Hvordan kan jeg kalle TestFunksjon på riktig måte i AppFrame::OnButton1Click2?

     

    Har prøvd utvide klassen og inkludere og litt slikt uten hell :p

    class AppFrame: public wxFrame, public Test

  14. Takk begge to for god respons:)

     

    Ja, det er det jeg også tenker. Har søkt litt på Google men ikke funnet noen treff som gir meg det jeg vil ha eller nærmere. Men det du skriver høres veldig smart ut og er nok den beste løsningen. Litt usikker på hvordan jeg skal filtrere ut img-taggene fra innlegget.

     

    Du kan filtrere dem ut med for eksempel preg_match_all, noe slikt:

     

    &--#60;?php
    
    $string =
    'Test hei
    &--#60;img src="bilde1"&--#62;
    string
    &--#60;img src="bilde2" /&--#62;
    Mere tekst her........
    &--#60;img src="DSAAAAAAAAAAAAAAAAAAAA"&--#62;
    ';
    
    preg_match_all('/&--#60;img[^&--#62;]+&--#62;/i', $string, $var);
    
    echo 'Det finnes totalt &--#60;strong&--#62;' . count($var[0]) . '&--#60;/strong&--#62; img-tager i stringen. Disse ble funnet:&--#60;br&--#62;';
    
    foreach($var[0] as $id =&--#62; $value)
    echo '#' . ($id+1) . ': ' . htmlspecialchars($value) . '&--#60;br&--#62;';
    
    ?&--#62;
    

     

    Denne fikk jeg til å fungere utmerket, virker som om dette var en god løsning. Prøvde ut litt hvordan jeg kan sette en limit og evt. sette et tilfeldig bilde som forsidebilde men fikk det ikke helt til, har du noen tips til hvordan jeg kan gjøre dette? Tusen takk for hjelpen, dette sparte meg for mye bry,

     

    Sette limit? På hvilken måte?

     

    Her er en metode for å hente ut et tilfeldig bilde av bildene hvertfall: bruk array_rand for å få ut et tilfeldig bilde og DOMDocument for å extracte innholdet i src="" tagen på bildet.

     

    Eksempel:

     

    <?php
    
    $DOM = new DOMDocument();
    
    $string =
    'Test hei
    <img src="bild1e1">
    string
    <img src="bilde2" />
    Mere tekst her........
    <img src="bilde3" />
    <img src="bilde4" />
    fffffff
    ';
    
    preg_match_all('/<img[^>]+>/i', $string, $var);
    
    echo 'Det finnes totalt <strong>' . count($var[0]) . '</strong> img-tager i stringen. Disse ble funnet:<br>';
    
    foreach($var[0] as $id => $value)
    echo '#' . ($id+1) . ': ' . htmlspecialchars($value) . '<br>';
    
    echo '<br><br>';
    
    $randomPic = array_rand($var[0], 1);
    
    $DOM->loadHTML($var[0][$randomPic]);
    $tag = $DOM->getElementsByTagName('img');
    foreach ($tag as $i)
    echo '<strong>Random bilde-URL:</strong> ' . $i->getAttribute('src');
    
    ?>

    • Liker 1
  15. Ja, det er det jeg også tenker. Har søkt litt på Google men ikke funnet noen treff som gir meg det jeg vil ha eller nærmere. Men det du skriver høres veldig smart ut og er nok den beste løsningen. Litt usikker på hvordan jeg skal filtrere ut img-taggene fra innlegget.

     

    Du kan filtrere dem ut med for eksempel preg_match_all, noe slikt:

     

    <?php
    
    $string =
    'Test hei
    <img src="bilde1">
    string
    <img src="bilde2" />
    Mere tekst her........
    <img src="DSAAAAAAAAAAAAAAAAAAAA">
    ';
    
    preg_match_all('/<img[^>]+>/i', $string, $var);
    
    echo 'Det finnes totalt <strong>' . count($var[0]) . '</strong> img-tager i stringen. Disse ble funnet:<br>';
    
    foreach($var[0] as $id => $value)
    echo '#' . ($id+1) . ': ' . htmlspecialchars($value) . '<br>';
    
    ?>
    

  16. Forbedret scriptet ditt litt og la til funksjonen :)

     

    <?php
    
    $path = 'danmark';
    $images = array_merge(glob("$path/*.jpg"));
    
    // Hvor mange bilder skal vises
    $pics = 20;
    
    for($i = 1; $i <= $pics; $i++)
    $count[$i] = (count($images)-$i);
    
    foreach($count as $picId => $value) {
    $picRef = $images[$value];
    echo 'Bilde #' . $picId . ':<br><img src="'.$picRef.'" height="250" width="250"><br>Bilde ble tatt: ' . (date('d, M - Y || H:i:s', filemtime($picRef))) . '<hr><br>';
    }
    
    ?>
    

×
×
  • Opprett ny...