javascript verstoort mijn site
Pagina: « vorige 1 2 3 volgende »
<li><a class="laad_pagina" href="views.php">Bekijken</a></li>
Waar je alleen wel weer voor moet zorgen is dat dan views.php dus niet meer de hele pagina verstuurt, maar alleen de inhoud voor het div.
P.S. Ik zie dat er nog een dubbele quote ontbreekt voor laad_pagina:
<li><a class=laad_pagina" href="vrienden.php">Wijzigen</a></li>
Mijn views.php is nu:
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
30
31
32
33
34
35
36
37
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<?php session_start(); ?>
<title>bekijken</title>
<link rel="stylesheet" type="text/css" href="css1/scroll.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('body').on('click','.laad_pagina',function(e){
e.preventDefault();
$('#target').load($(this).attr('href'), function() {
});
});
});
</script>
</head>
<body>
<div id='left'>
<a href='' title='Balletto'><img src='imgs1/pre1.jpg' /></a>
<img src='imgs1/pre2.jpg' title='Pesca' />
</div>
<ul id="thicktabs">
<li><a class="laad_pagina" href="views.php">Bekijken</a></li>
<li><a class="laad_pagina" href="vrienden.php">Wijzigen</a></li>
<li><a href="bekijken3.php">Bekijken</a></li>
<li><a href="wijzigen.php">Wijzigen</a></li>
<li><a href="upload4.php">Uploaden</a></li>
</ul>
<div id="target"><img src="afbeeldingen/lounge4.jpg"></div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<?php session_start(); ?>
<title>bekijken</title>
<link rel="stylesheet" type="text/css" href="css1/scroll.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('body').on('click','.laad_pagina',function(e){
e.preventDefault();
$('#target').load($(this).attr('href'), function() {
});
});
});
</script>
</head>
<body>
<div id='left'>
<a href='' title='Balletto'><img src='imgs1/pre1.jpg' /></a>
<img src='imgs1/pre2.jpg' title='Pesca' />
</div>
<ul id="thicktabs">
<li><a class="laad_pagina" href="views.php">Bekijken</a></li>
<li><a class="laad_pagina" href="vrienden.php">Wijzigen</a></li>
<li><a href="bekijken3.php">Bekijken</a></li>
<li><a href="wijzigen.php">Wijzigen</a></li>
<li><a href="upload4.php">Uploaden</a></li>
</ul>
<div id="target"><img src="afbeeldingen/lounge4.jpg"></div>
</body>
</html>
Mvg,
Kurt
Wat ik alleen eerst even wil weten is of de pagina ook helemaal ververst wordt, of dat het inladen in de target div wel werkt? Dus als je nu in views.php op de link voor views.php klikt, krijg je dan de volledige pagina in het target div te zien?
Bedankt voor heel de moeite.
Als ik op de link "views" klik zie ik de pagina dubbel onder elkaar, uitgezonderd de target div die zie ik maar 1 keer onderaan. Dus de afbeelding in <div id="target"><img src="afbeeldingen/lounge4.jpg"></div> zie ik maar 1 keer en de rest verschijnt twee keer.
mvg,
Kurt
Dit kan je op twee manieren oplossen. Ofwel checken in views.php of de request wordt gemaakt via een AJAX call (zie de code daarvoor op de vorige pagina), of geef een parameter mee in de link zodat je die in views.php kan checken en op basis daarvan bepaalt of alles moet worden verstuurd of niet (zie ook daarvoor de vorige pagina).
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
}
else {
}
mvg,
Kurt
Het werkt nu van views naar vrienden en omgekeerd! :-) Thanks!! Zoveel sneller nu..
Alleen heb ik nog het probleem met url en title. Indien het niet mogelijk is dat de url van views naar vrienden.php veranderd, is het misschien mogelijk dat een id in de url komt met $_SESSION bijvoorbeeld en dan geef ik de pagina's een standaardnaam "home". Dan krijg je: home.php?id=vrienden en home.php?id=views.
Is het mogelijk dat deze id variabel wordt? Ik heb even met sessie geprobeerd maar dit lukte me niet.
mvg,
Kurt
Code (php)
1
2
2
<li><a class="laad_pagina" href="views.php">Bekijken</a></li>
<li><a class="laad_pagina" href="vrienden.php">Wijzigen</a></li>
<li><a class="laad_pagina" href="vrienden.php">Wijzigen</a></li>
deze gebruiken:
Code (php)
1
2
2
<li><a class="laad_pagina" href="home.phpid=views">Bekijken</a></li>
<li><a class="laad_pagina" href="home.php?id=vrienden">Wijzigen</a></li>
<li><a class="laad_pagina" href="home.php?id=vrienden">Wijzigen</a></li>
En dan ben je er al. Uiteraard wel zorgen dat home.php die request juist kan afhandelen, maar dat spreekt voor zich.
Dit lijkt ook wel op de manier die ik meestal met AJAX calls gebruik. Een pagina verzorgt de afhandeling van meerdere request, welk request wordt bepaald door een "action" parameter in danwel GET danwel POST parameters. Zo heb je niet een aparte php pagina nodig voor elke verschillende optie.
Alleen begrijp ik niet helemaal wat je nu met sessies wilt bereiken. In principe gebruik je sessies om data op te slaan tussen server calls, dus dat je kan onthouden wie de gebruiker was bijvoorbeeld. In dit geval begrijp ik niet welke data je dan denkt nodig te hebben.
Gewijzigd op 23/02/2012 14:57:29 door Erwin H
groeten
www.blabla.nl/home.php.
Binnen die pagina heb je dan linkjes zoals hierboven (dus bv home.php?id=vrienden) waarbij de content van die pagina in je target div wordt geladen. Echter, die url's zal de gebruiker dus nooit zien. Hij zal al die tijd, hoe vaak hij ook heen en weer gaat, alleen die www.blabla.nl/home.php zien.
De url in de browser verandert op geen enkel moment. Wat ik zou doen is een soort startpagina maken die een user gewoon kan aanroepen als Binnen die pagina heb je dan linkjes zoals hierboven (dus bv home.php?id=vrienden) waarbij de content van die pagina in je target div wordt geladen. Echter, die url's zal de gebruiker dus nooit zien. Hij zal al die tijd, hoe vaak hij ook heen en weer gaat, alleen die www.blabla.nl/home.php zien.
Gewijzigd op 23/02/2012 17:42:59 door Erwin H
De titel van je pagina aanpassen kan wel redelijk makkelijk in Javascript:
Als je een beetje rondkijkt op internet dan vind je veel redenen om het niet te doen, maar het kan wel, dus de keuze is aan jou.
Volgens mij is dat gewoon het herladen van een pagina door een normale aanroep te doen, of een modrewrite actie, maar niet wat jij wilt.
Dan heb ik nog een laatste vraagje:
Ik heb een pagina "profiel.php" waar de header een achtergrond heeft; als ik naar de pagina "views.php" ga verschijnt die achtergrond nu ook terwijl dit gewoon wit moet zijn. Kan dit verholpen worden?
In de profiel.php heb ik:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
#header {
<?php
$query = "SELECT achtergrond, acht, background
FROM members,achtergrond WHERE naam='" . $_SESSION['username'] . "' AND achtergrond = acht ";
$result=mysql_query($query);
$rows=mysql_fetch_array($result); ?>
background-image:url(<?php echo 'achtergronden/' . $rows['background'] ?>);
background-color:white;
}
<?php
$query = "SELECT achtergrond, acht, background
FROM members,achtergrond WHERE naam='" . $_SESSION['username'] . "' AND achtergrond = acht ";
$result=mysql_query($query);
$rows=mysql_fetch_array($result); ?>
background-image:url(<?php echo 'achtergronden/' . $rows['background'] ?>);
background-color:white;
}
In de views.php heb ik
Gewijzigd op 24/02/2012 00:25:55 door kurtik watson
De lege string betekent dat het property wordt verwijderd.
P.S. let even op hier, omdat je een samengesteld property gebruikt zijn er officieel twee manieren in JQuery om dit property te zetten. Zoals ik het hierboven deed, of: css("backgroundColor"). Dus zonder streepje en hoofdletter c. Beide zouden moeten werken, maar ik heb er in het verleden nog wel eens problemen mee gehad. Als de een dus niet werkt kan je ook de andere proberen.
Gewijzigd op 24/02/2012 09:31:26 door Erwin H
mvg,
Kurt
Dit heeft niets met Ajax te maken. Het is gewoon JQuery/Javascript, dus of je het nu na een Ajax call of niet aanroept is niet relevant.
Ik heb de jquery css tussen de andere javascripts gezet. Je ziet dus eerst de css normaal en daarna de css jquery. Ik heb de background-color ook vervangen door background-image in de jquery css want het is de background-image die zich niet mag herhalen op de andere pagina.
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
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
session_start();
?>
<div id="target"><img src="afbeeldingen/lounge4.jpg"></div>
<?php
}
else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<?php session_start(); ?>
<title>bekijken</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<style type="text/css">
#header {
<?php
include('databas.php');
$query = "SELECT achtergrond, acht, background
FROM yapa_members, yapa_achtergrond WHERE naam='" . $_SESSION['username'] . "' AND achtergrond = acht ";
$result=mysql_query($query);
$rows=mysql_fetch_array($result); ?>
background-image:url(<?php echo 'achtergronden/' . $rows['background'] ?>);
background-color:#FFFFFF;
}
?>
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
session_start();
?>
<div id="target"><img src="afbeeldingen/lounge4.jpg"></div>
<?php
}
else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<?php session_start(); ?>
<title>bekijken</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<style type="text/css">
#header {
<?php
include('databas.php');
$query = "SELECT achtergrond, acht, background
FROM yapa_members, yapa_achtergrond WHERE naam='" . $_SESSION['username'] . "' AND achtergrond = acht ";
$result=mysql_query($query);
$rows=mysql_fetch_array($result); ?>
background-image:url(<?php echo 'achtergronden/' . $rows['background'] ?>);
background-color:#FFFFFF;
}
?>
</style>
<script type="text/javascript">
$("#header").css("background-image":"");
</script>
<script>
$(document).ready(function(){
$('body').on('click','.laad_pagina',function(e){
e.preventDefault();
$('#target').load($(this).attr('href'), function() {
});
});
});
</script>
</head>
<body>
<div id='left'>
<a href='' title='Balletto'><img src='imgs1/pre1.jpg' /></a>
<img src='imgs1/pre2.jpg' title='Pesca' />
</div>
<ul id="thicktabs">
<li><a class="laad_pagina" href="views.php">Bekijken</a></li>
<li><a class="laad_pagina" href="vrienden.php">vrienden</a></li>
<li><a href="bekijken3.php">Bekijken</a></li>
<li><a href="wijzigen.php">Wijzigen</a></li>
<li><a href="upload4.php">Uploaden</a></li>
</ul>
<div id="target"><img src="afbeeldingen/lounge4.jpg"></div>
<a class="laad_pagina" href="vrienden.php">Laad pagina 1</a>
</body>
</html>
Gewijzigd op 25/02/2012 12:01:01 door kurtik watson
(maar, zou "include('databas.php');" niet "include('database.php');" moeten zijn?)