javascript verstoort mijn site

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

Kurtik watson

kurtik watson

25/02/2012 12:08:55
Quote Anchor link
nee, dat klopt. (databas.php) :-)

Ik wil zeggen dat ik je code op de pagina zet:

<script type="text/javascript">
$("#header").css("background-image":"");
</script>

Maar wanneer ik bijvoorbeeld van vrienden.php ga naar views.php ik dezelfde achtergrond in views.php blijf zien en die gewoon wit zou moeten zijn. Het gaat om de achtergrond image. Daarom heb ik in je code hierboven background-color vervangen door background-image..

mvg,
Kurt
Gewijzigd op 25/02/2012 12:09:21 door kurtik watson
 
PHP hulp

PHP hulp

12/01/2025 00:51:05
 
Erwin H

Erwin H

25/02/2012 12:14:05
Quote Anchor link
Ten eerste, als je wilt dat er iets verandert na een click op een link, dan moet die verandering natuurlijk wel in de event handler van de click komen. Zoals je het nu hebt staan wordt het gewoon een keer gedaan op het moment dat de pagina laadt en dat is het.
Dus dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<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>

Moet in elk geval dit worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<script>
$(document).ready(function(){
  $('body').on('click','.laad_pagina',function(e){
    e.preventDefault();
    $("#header").css("background-image":"");
    $('#target').load($(this).attr('href'), function() {

    });
  });
});
</script>

Maar dan vrees ik dat je er nog niet bent. Nu zal de header image gewoon verdwijnen bij iedere keer dat je op een link klinkt die een nieuwe pagina in het target div laad. Dus ook als je terug zou gaan naar de pagina waar de header wel nodig is.
 
Kurtik watson

kurtik watson

25/02/2012 12:49:29
Quote Anchor link
Dit begrijp ik ja, maar het rare is nu ook dat door die header toe te voegen in het script mijn AJAX niet meer werkt. Dus als ik van vrienden naar views ga met dit script laad hij terug de volledige pagina..

mvg
 
Erwin H

Erwin H

25/02/2012 13:05:51
Quote Anchor link
Laad dan eens je script weer zien.
 
Kurtik watson

kurtik watson

25/02/2012 13:15:42
Quote Anchor link
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
<?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;
            }
?>

</style>
<script>
$(document).ready(function(){
$('body').on('click','.laad_pagina',function(e){
e.preventDefault();
$("#header").css("background-image":"");
$('#target5').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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>

 
Erwin H

Erwin H

25/02/2012 13:32:32
Quote Anchor link
En op welke link klik je dan en hoe check je in vrienden.php dat het een ajax call is?
Want hij laadt dus wel iets, maar niet het goede begrijp ik.
 
Kurtik watson

kurtik watson

25/02/2012 13:40:37
Quote Anchor link
Op de manier hieronder aangegeven check ik de ajax call: het werkt wel, alleen als ik die "$("#header").css("background-image":"");" in het javascript toevoeg doet hij het niet meer. Ik klik eerst op vrienden in de menubalk en vervolgens op views..

mvg
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
?>

<div id="target5">tekst</div>
{
else
{
volledige pagina
}            
 
Erwin H

Erwin H

25/02/2012 14:25:45
Quote Anchor link
Zet die regel dan eens achter de load(). Laad hij dan nog en gebeurt er dan iets met de header?
 
Kurtik watson

kurtik watson

25/02/2012 14:47:59
Quote Anchor link
Ik heb het nu zo gezet en er gebeurt terug niks. De ajax recall gebeurt niet..als ik naar de andere pagina ga, laad hij gewoon de volledige pagina, vreemd he :-(

<script>
$(document).ready(function(){
$('body').on('click','.laad_pagina',function(e){
e.preventDefault();
$('#target5').load($(this).attr('href'), function() {

});
$("#header").css("background-image":"");
});
});
</script>
Gewijzigd op 25/02/2012 14:53:17 door kurtik watson
 
Erwin H

Erwin H

25/02/2012 14:52:22
Quote Anchor link
Zoals ik al eerder zei, ik heb weleens problemen gehad met die samengestelde properties in JQuery. Dus probeer eens $("#header").css("backgroundImage":"");
 
Kurtik watson

kurtik watson

25/02/2012 14:59:23
Quote Anchor link
juist geprobeerd, werkt ook niet pfff, heb de code voor en na de load getest :-( Vreemd he, precies alsof die header code een storing geeft telkens
 
Erwin H

Erwin H

25/02/2012 15:21:03
Quote Anchor link
Dat op zich is wel te testen, zet gewoon na elke regel een alert met een getal erin, zodat je kan zien waar het mis gaat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
$(document).ready(function(){
  $('body').on('click','.laad_pagina',function(e){
    e.preventDefault();
    alert("0");
    $('#target5').load($(this).attr('href'), function() {
      alert("pagina geladen");
    });
    alert("1");
    $("#header").css("background-image":"");
    alert("2");
  });
});

De pagina geladen alert zou je als laatste moeten zien, omdat die in een callback staat. Welk krijg je nu wel te zien en welke niet?
 
Kurtik watson

kurtik watson

25/02/2012 17:09:41
Quote Anchor link
ik zie geen alert getallen eigenlijk op mijn pagina's..wat bedoel je na elke regel testen?

ik heb jouw laatste js code hierboven op de twee pagina's gezet, als vervanging van het vorige.

mvg
 
Erwin H

Erwin H

25/02/2012 17:21:15
Quote Anchor link
Je weet toch wel wat debuggen is hoop ik....?
Alerts kan je gebruiken als de beep vroeger (de "poor man's debugger"). Met andere woorden, om te testen of elke regel wel wordt uitgevoerd plaats je een alert na elke regel met verschillende teksten zodat je weet waar de code misgaat en er iets niet meer wordt uitgevoerd. Dat is wat ik hierboven heb gedaan en als je nu op een link klikt zou je achter elkaar alerts moeten krijgen in je browser. Als je nog wel de 1 te zien krijgt in een alert, maar niet de 2 dan weet je dat die regel om de header aan te passen dus niet klopt.
 
Kurtik watson

kurtik watson

25/02/2012 17:26:12
Quote Anchor link
ja maar geen enkel getal verschijnt en als ik de code van de header weghaal: $("#header").css("backgroundImage":""); , dan werkt de AJAX call. Het moet enkel aan die header liggen,tja..anders moet ik alle achtergronden wit maken.

mvg
 

Pagina: « vorige 1 2 3



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.