Jquery content laden
Hallo,
Al een tijdje geleden ben ik op zoek gegaan naar een script om pagina's door middel van AJAX in te laden. Ik heb geprobeerd om een bestaand voorbeeld (http://tutorialzine.com/2009/09/simple-ajax-website-jquery/) aan te passen, zodat er geen losse html-pagina's hoeven te zijn, maar dat de teksten uit een database gehaald worden en met mod rewrite worden herschreven naar .html bestanden. Ik gebruik namelijk mijn eigen CMS, die dus met een database werkt, voor klanten en voor mezelf. Het is op zich gelukt, maar het werkt toch nog niet helemaal zoals ik had gehoopt. De .html bestanden moeten namelijk een cijfer zijn, omdat het script anders niet werkt (bijv. 1.html). De url die er vervolgens uitkomt is dan demo.html#page1 (zie http://alturl.com/2yqj voor wat ik op dit moment heb).
Weet iemand hoe ik dit zou kunnen veranderen naar bijv. demo.html#home ?
Dan kan ik namelijk mijn pagina's gewoon weer "home" noemen i.p.v. "1". enz.
Al een tijdje geleden ben ik op zoek gegaan naar een script om pagina's door middel van AJAX in te laden. Ik heb geprobeerd om een bestaand voorbeeld (http://tutorialzine.com/2009/09/simple-ajax-website-jquery/) aan te passen, zodat er geen losse html-pagina's hoeven te zijn, maar dat de teksten uit een database gehaald worden en met mod rewrite worden herschreven naar .html bestanden. Ik gebruik namelijk mijn eigen CMS, die dus met een database werkt, voor klanten en voor mezelf. Het is op zich gelukt, maar het werkt toch nog niet helemaal zoals ik had gehoopt. De .html bestanden moeten namelijk een cijfer zijn, omdat het script anders niet werkt (bijv. 1.html). De url die er vervolgens uitkomt is dan demo.html#page1 (zie http://alturl.com/2yqj voor wat ik op dit moment heb).
Weet iemand hoe ik dit zou kunnen veranderen naar bijv. demo.html#home ?
Dan kan ik namelijk mijn pagina's gewoon weer "home" noemen i.p.v. "1". enz.
Gewijzigd op 15/06/2010 13:04:10 door Joep Bogaers
Je zou in principe regel dertig van de javascript weg kunnen halen en in de php op regel drie zou de (int) type casting weggehaald moeten worden.
Dat betekend dan wel dat er een pagina pages/home.html moet zijn.
Dat betekend dan wel dat er een pagina pages/home.html moet zijn.
Als ik regel dertig weghaal, gaat er iets helemaal fout...
En sorry, ik was vergeten te zeggen dat ik een eigen php-deel heb gemaakt (omdat ik het uit de database haal).
Hieronder kunt u het zien:
En sorry, ik was vergeten te zeggen dat ik een eigen php-deel heb gemaakt (omdat ik het uit de database haal).
Hieronder kunt u het zien:
Code (php)
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
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
<?php
$server = "localhost";
$user = "root";
$pass = "";
$database = "test";
$connect = mysql_connect($server, $user, $pass) or die("Verbinding maken met server mislukt.");
mysql_select_db($database, $connect) or die ("Verbinding maken met database mislukt.");
if(!isset($_GET['page']) || $_GET['page'] == "") {
header("location: demo.html#page1");
} else {
$p = $_GET['page'];
$sql = "SELECT title, keywords, content FROM pages WHERE title='".mysql_real_escape_string($p)."' AND invisible='no'";
$resultaat = mysql_query($sql, $connect) or die (mysql_error());
if(mysql_num_rows($resultaat) >= 1) {
while (list($title, $keywords, $content) = mysql_fetch_row($resultaat)) {
$t = $title;
$k = $keywords;
$c = $content;
}
$sql2 = "UPDATE pages SET hits=(hits+1) WHERE title='".mysql_real_escape_string($p)."'";
mysql_query($sql2, $connect) or die (mysql_error());
} else {
$c = "<p><strong>Deze pagina bestaat niet (meer) of is tijdelijk onzichtbaar gemaakt.</strong></p>";
}
}
echo $c;
?>
$server = "localhost";
$user = "root";
$pass = "";
$database = "test";
$connect = mysql_connect($server, $user, $pass) or die("Verbinding maken met server mislukt.");
mysql_select_db($database, $connect) or die ("Verbinding maken met database mislukt.");
if(!isset($_GET['page']) || $_GET['page'] == "") {
header("location: demo.html#page1");
} else {
$p = $_GET['page'];
$sql = "SELECT title, keywords, content FROM pages WHERE title='".mysql_real_escape_string($p)."' AND invisible='no'";
$resultaat = mysql_query($sql, $connect) or die (mysql_error());
if(mysql_num_rows($resultaat) >= 1) {
while (list($title, $keywords, $content) = mysql_fetch_row($resultaat)) {
$t = $title;
$k = $keywords;
$c = $content;
}
$sql2 = "UPDATE pages SET hits=(hits+1) WHERE title='".mysql_real_escape_string($p)."'";
mysql_query($sql2, $connect) or die (mysql_error());
} else {
$c = "<p><strong>Deze pagina bestaat niet (meer) of is tijdelijk onzichtbaar gemaakt.</strong></p>";
}
}
echo $c;
?>
Waar is die while loop goed voor? je haalt maar 1 rij uit je database. Ten tweede waarom kort je de variabelen in? geef ze dan direct in de list() de benaming die je wilt. dit is dubbel op zo.
Ik type normaal alles gewoon uit, dat is beter leesbaar. Dit is natuurlijk persoonlijk er is niets mis met afkorten als je dat zelf wilt.
Ik type normaal alles gewoon uit, dat is beter leesbaar. Dit is natuurlijk persoonlijk er is niets mis met afkorten als je dat zelf wilt.
Ik weet dat dat niet het meest logische is, maar het werkt in ieder geval prima;)
Het probleem heeft niets te maken met het php-bestand, dit is enkel ter verduidelijking bijgevoegd.
Het probleem heeft niets te maken met het php-bestand, dit is enkel ter verduidelijking bijgevoegd.
Niemand?




