Php, met tpl bestanden en mysql :)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees van Norde

Kees van Norde

17/11/2011 17:06:15
Quote Anchor link
Hoi,

Ik kom er maar niet uit, maar dat zullen jullie vaker horen haha :P

Ik wil graag een paar aanpassingen doen aan een bestaand script.
Nu werkt dat php script met tpl bestanden.

In een tpl bestand wil ik het volgende aanpassen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
            <td style="width: 100%"><select name="categorie"><option value="Films">Films<string jan></option><option value="Boeken">Boeken</option><option value="Websites">Websites</option></select></td>

Ik wil dat hij daar niet "Films", "Boeken" en "Websites" laat zien maar dat hij die gegevens uit de database haalt.

Hoe een database uitgelezen moet worden weet ik, maar die code werkt niet in een tpl bestand.

Is er een manier mogelijk om dit wel zo uit te lezen zodat ik de categorien uitlees uit de database?
Gewijzigd op 17/11/2011 23:08:20 door Kees van Norde
 
PHP hulp

PHP hulp

16/11/2024 08:32:08
 
- Ariën  -
Beheerder

- Ariën -

17/11/2011 17:10:39
Quote Anchor link
TPL staat voor 'template', hierin hoort alleen de view-laag te staan; alles wat je dus ziet. De logica (en de de PHP scripting) valt hier niet onder.

De vraag is op welke manier het template-systeem werkt, dus kom eens met relevante code van de achterliggende PHP-script aan.
Gewijzigd op 17/11/2011 17:11:35 door - Ariën -
 
Kees van Norde

Kees van Norde

17/11/2011 17:12:53
Quote Anchor link
Ok, het gaat om dit stuk php code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    function tip_toevoegen () {
        $this->r['tpl']->define (array ('index.tpl', 'panel/tip_toevoegen.tpl'));

        if($this->r['client']->ingelogd == 1) {
            if(isset ($_POST['submit']) || $_SERVER['REQUEST_METHOD'] == 'post') {
                $error = array ();
                $sFlood = $this->r['sql']->query ("SELECT * FROM flood WHERE pagina = 'Tip toevoegen' AND ip = '".$this->r['functions']->haal_ip ()."'");

                if($this->r['sql']->rows ($sFlood))
                    $error ['Ftitel'] = 'Je hebt zojuist al een tip toegevoegd.';
                if(!isset ($_POST['naam']) || strlen ($_POST['naam']) < 3 || strlen ($_POST['naam']) > 25)
                    $error ['Fnaam'] = 'Je hebt geen geldige naam opgegeven.';
                if(!isset ($_POST['tip']) || strlen ($_POST['tip']) < 3)
                    $error ['Ftip'] = 'Je hebt geen geldige tip opgegeven.';
                        if(!isset ($_POST['categorie']) || ($_POST['categorie'] != 'Films' && $_POST['categorie'] != 'Boeken' && $_POST['categorie'] != 'Websites'))
                              $error ['Fcategorie'] = 'Je hebt geen geldig categorie opgegeven.';

                if(count ($error) > 0) {
                    ## Foute velden noteren
                    foreach ($error AS $key => $value)
                    {
                        $this->r['tpl']->assign ("ErrorArea_R", "sFout", $value);
                        $this->r['tpl']->Parse ("ErrorArea", "ErrorArea_R");
                    }
                    $this->r['tpl']->Parse ("Toevoegen", "ErrorArea");

                    foreach ($_POST AS $key => $content) $this->r['tpl']->assign ("Toevoegen", "V".$key, $this->r['functions']->strip ($content));
                    $this->r['tpl']->Parse ("index", "Toevoegen", "content");
                }
                else {
                    $this->r['sql']->query ("INSERT INTO flood (pagina, ip, datum) VALUES ('Tip toevoegen', '".$this->r['functions']->haal_ip ()."', '".time ()."')");
                    $this->r['sql']->query ("INSERT INTO tips (profile_id, categorie, naam, review, datum) VALUES ('".mysql_real_escape_string ($this->r['user']['pid'])."', '".mysql_real_escape_string ($_POST['categorie'])."', '".mysql_real_escape_string ($_POST['naam'])."', '".mysql_real_escape_string ($_POST['tip'])."', '".time ()."')");
                    $this->r['functions']->redirect ('Succesvol', 'Je hebt deze tip succesvol toegevoegd.', 'panel/tips', 3);
                }
            }
            else $this->r['tpl']->Parse ("index", "Toevoegen", "content");
        }
        else $this->r['functions']->redirect ('Fout', 'Je kunt geen tip toevoegen als je niet bent ingelogd.', 'members/login', 3);
    }


Toevoeging op 17/11/2011 17:16:06:

En de .tpl ziet er zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<block Toevoegen>
<form method="post" action="<global adres>/panel/tip_toevoegen">
<input type="hidden" name="submit" value="1">
                <div class="countBox">
                    <div class="top">
                        <div class="bottom">
                                          <h2><a href="<global adres>/panel/" class="apanel">Panel</a> > Tip toevoegen</h2>
    <table style="width: 100%">
        <block ErrorArea>
        <tr>
            <td style="width: 100%" colspan="4"><span style="color: red">Er ging iets fout:</span></td>
        </tr>
        <block ErrorArea_R><tr>
            <td style="width: 100%" colspan="4"><span style="color: red">- <string sFout></span></td>
        </tr></block ErrorArea_R>
        </block ErrorArea>
        <tr>
            <td style="width: 100%" colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <td style="width: 100%"><strong>Categorie</strong> <string Fnaam></td>
        </tr>
        <tr>
            <td style="width: 100%"><select name="categorie"><option value="Films">Films<string jan></option><option value="Boeken">Boeken</option><option value="Websites">Websites</option></select></td>
        </tr>
        <tr>
            <td style="width: 100%"><strong>Naam</strong> <string Fnaam></td>
        </tr>
        <tr>
            <td style="width: 100%"><input type="text" name="naam" size="30" value="<string Vnaam>" /></td>
        </tr>
        <tr>
            <td style="width: 100%"><strong>Tip</strong> <string Ftip></td>
        </tr>
        <tr>
            <td style="width: 100%"><textarea name="tip" cols="70" rows="7"><string Vtip></textarea></td>
        </tr>
        <tr>
            <td style="width: 100%" colspan="2"><input type="submit" name="submit" value="Toevoegen!">&nbsp;<input type="reset" value="Herstel"></td>
        </tr>
    </table>
                        </div>
                    </div>
                </div>
</form>
</block Toevoegen>

Toevoeging op 17/11/2011 17:17:27:

P.S. Ik moet nu even weg, maar ben vanavond weer terug.
Dus als je even geen reactie krijgt is dat de reden :D
Gewijzigd op 17/11/2011 23:09:06 door Kees van Norde
 
- Ariën  -
Beheerder

- Ariën -

17/11/2011 17:19:42
Quote Anchor link
Gebruik a.u.b code-tags om je code heen.

Kan je ook vertellen welke Template-parser dit is?
Gewijzigd op 17/11/2011 17:21:20 door - Ariën -
 
Kees van Norde

Kees van Norde

17/11/2011 21:24:25
Quote Anchor link
- Aar - op 17/11/2011 17:19:42:
Gebruik a.u.b code-tags om je code heen.

Kan je ook vertellen welke Template-parser dit is?

Sorry, ik zal dat voortaan doen.

Hoe kan ik zien welke template-parser dat is?
Sorry als dit een domme vraag is, ik ben met dat tpl gebeuren niet zo bekend :P
 
- Ariën  -
Beheerder

- Ariën -

17/11/2011 21:28:54
Quote Anchor link
Misschiend at er een verwijzing staat in de bestanden. Ikzelf zou nie zo weten hoe je in de tpl-files een array uit kan lezen.

Voor Smarty als Templateparser weet ik het wel, maar dit is duidelijk iets anders dan dat.
 
Kees van Norde

Kees van Norde

17/11/2011 21:36:51
Quote Anchor link
Ik zie niet echt iets in de php en tpl bestanden wat te maken heeft met een verwijzing naar een templateparser.

Iemand anders nog suggesties :D
 
- Ariën  -
Beheerder

- Ariën -

17/11/2011 21:42:10
Quote Anchor link
Kan je zoals ik al eerder vroeg je PHP-code even aanpassen door het tussen code-tags te zetten?
 
Kees van Norde

Kees van Norde

17/11/2011 23:09:36
Quote Anchor link
Ok ik heb het aangepast :)

Iemand nog een idee?
 
- Ariën  -
Beheerder

- Ariën -

17/11/2011 23:13:41
Quote Anchor link
Is dit een onderdeel van een groot software-pakket, zoals phpBB of vBulletin ofzo?
 
Kees van Norde

Kees van Norde

17/11/2011 23:16:20
Quote Anchor link
Dit is onderdeel van cmyid (www.cmyid.nl).
Ik heb dit script een tijd geleden gekocht met alle rechten.
Inmiddels ben ik ook de eigenaar van www.cmyid.nl.
 
- Ariën  -
Beheerder

- Ariën -

17/11/2011 23:20:14
Quote Anchor link
Tja, als je een voorbeeld hebt waarin iets in je template door een loopje wordt gehaald, en hoe die array wordt gegenereerd in de PHP-code, dan weet ik wat meer.

kan je het niet vragen aan de maker? Want deze code is best wel specifiek.
Gewijzigd op 17/11/2011 23:21:51 door - Ariën -
 
Kees van Norde

Kees van Norde

18/11/2011 09:00:46
Quote Anchor link
De maker is er al een hele tijd geleden mee gestopt, en doet er ook niks meer mee dus daar kan ik niets mee.

Ik weet niet of je er wat aan hebt, maar ik kan het script wel even op een test domein installeren en de ftp gegevens ervan geven.
 
- Ariën  -
Beheerder

- Ariën -

18/11/2011 11:18:29
Quote Anchor link
Liever wat relevante code... Een ftp inlog zal toch weer onbruikbaar raken.
 
Kees van Norde

Kees van Norde

18/11/2011 11:23:20
Quote Anchor link
Ik zou het graag willen doen, maar buiten de reeds gegeven code zou ik echt niet weten wat je nodig hebt.

Misschien dat andere mensen deze code begrijpen, ik wacht het nog wel even af :)
 
- Ariën  -
Beheerder

- Ariën -

18/11/2011 11:43:40
Quote Anchor link
Kan je niet kijken in de template waar een selectbox opgebouwd wordt. En dat je aan de hand daarvan kan kijken welke PHP-file dat regelt?

En gezien je het overgekocht hebt? Heb je niet contractueel de support erbij genomen? Voor een specifieke template-parser zou dat wel handig zijn.
 
Kees van Norde

Kees van Norde

18/11/2011 18:30:42
Quote Anchor link
Ik ben er bijna uit!

Het is nog even in afwachting van topic:
http://www.phphulp.nl/php/forum/topic/een-laten-weergeven-in-php/81146/

Toevoeging op 18/11/2011 19:01:18:

Ok het probleem is inmiddels opgelost.

Ik heb het op deze manier opgelost (niet op de namen letten, dit is puur om te testen):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$fles = "";
while($row = mysql_fetch_array( $piet )) {
    // Print out the contents of each row into a table
$klaas = "<option value='";
$piet2 = $row['naam'];
$klaas2 = "'>$piet2</option>";

$jan = $klaas.$piet2.$klaas2;
echo $jan;

$fles = $fles . $jan;
}
echo $fles;

                        $this->r['tpl']->assign ("Bewerken", "Vjan", $fles);

Vervolgens in de .tpl de volgende code geplaatst:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
            <td style="width: 100%"><select name="categorie"><string Vjan></select></td>

Opgelost dus :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.