JS en vreemde tekens in Ajax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Vincent

Vincent

05/02/2008 13:30:00
Quote Anchor link
Aloha,

Ik heb twee vragen:

1: Ik heb een Ajax script om content dynamisch te veranderen zonder page refresh. Alleen blokkeerd Ajax op de een of andere manier vreemde tekens. Het woord één wordt bijv. vervangen door een blokje. Is hier wat aan te doen?

2: Op de een of andere manier kan ik geen JS uitvoeren in een door Ajax geïnclude script. Ajax roept een php file aan en voorziet die van data. Nou geeft ie af en toe al blokjes terug in plaats van de tekst zonder wijziging te retourneren. Nou kan ik ook geen JS hierin uitvoeren. Een alert functie werkt bijv. al niet. JS binnen Ajax hebben we wel nodig, omdat een JS code een banner tussen de headlines moet plaatsen en eventuele ongewenste marge van een div, waar de banner wel-niet in staat, weg te halen.
Gewijzigd op 01/01/1970 01:00:00 door Vincent
 
PHP hulp

PHP hulp

24/12/2024 17:35:53
 
Jacco Engel

Jacco Engel

05/02/2008 13:44:00
Quote Anchor link
Op vraag 1:
Hoe staat het speciale teken opgeslagen? Staat een € gewoon als € opgeslagen of als € ?

op vraag 2 :

oncomplete : function(t)
{
alert("Afgerond") ;
alert(t.responseText);
}
 
Vincent

Vincent

05/02/2008 14:38:00
Quote Anchor link
Tekens als é en ç staan zo in de DB.

Gat oplossing op vraag 2 nog eens proberen.
 
Jacco Engel

Jacco Engel

05/02/2008 14:39:00
Quote Anchor link
Dan heb je de oplossing voor vraag 1 ook. Ga ze als € (en vergelijkbaar) in de DB zetten. Probeer er maar eens 1. ben er voor 90% van verzekerd dat het werkt
 
Vincent

Vincent

05/02/2008 14:47:00
Quote Anchor link
Ja ok, maar is nog wel een flink karwei om een viertal uitgebreide CMSen daarop aan te passen. En alle alreeds bestaande data aan te passen.
 
Jacco Engel

Jacco Engel

05/02/2008 15:10:00
Quote Anchor link
Volgens mij kon je het ook oplossen door andere charsets ofzo in te stellen maar dat zou ik zo niet durven zeggen
 
Mr D

Mr D

05/02/2008 15:28:00
Quote Anchor link
Jacco schreef op 05.02.2008 14:39:
Dan heb je de oplossing voor vraag 1 ook. Ga ze als € (en vergelijkbaar) in de DB zetten. Probeer er maar eens 1. ben er voor 90% van verzekerd dat het werkt

dit is geen goede oplossing, sla altijd de originele data op in de database
 
Jacco Engel

Jacco Engel

05/02/2008 15:31:00
Quote Anchor link
En wat is er niet orgineel aan die data dan :)?

Dat is dan 2800+ posts vs 102 posts
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
 
W W

W W

05/02/2008 17:19:00
Quote Anchor link
Mr D schreef op 05.02.2008 15:28:
Jacco schreef op 05.02.2008 14:39:
Dan heb je de oplossing voor vraag 1 ook. Ga ze als € (en vergelijkbaar) in de DB zetten. Probeer er maar eens 1. ben er voor 90% van verzekerd dat het werkt

dit is geen goede oplossing, sla altijd de originele data op in de database


?? Volgens mij is het beter € in je database te zetten dan €.
 
Vincent

Vincent

06/02/2008 14:11:00
Quote Anchor link
Kom er nog niet helemaal 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
<script>
var objHeadlines;

function headlines(type) {
    var pagina = "ajax_headlines.php?tijd=" + Date() + "&type=" + type;

    objHeadlines = createRequestObject();

    objHeadlines.open("GET", pagina, true);
    objHeadlines.onreadystatechange = headlinesDiv;

    objHeadlines.setRequestHeader("Cache-Control", "no-cache");
    objHeadlines.setRequestHeader("X_USERAGENT", "AjaxApplicatie");

    objHeadlines.send(null);
}
    
function headlinesDiv() {
    if (objHeadlines.readyState == 4 && objHeadlines.status == 200) {
        if (objHeadlines.responseText) {
            document.getElementById("headlines_ajax").innerHTML = objHeadlines.responseText;
        }
    }
}
</script>

<div class="boxTabsH">
    <div id="tabHeadlines" class="tabHAlles"></div>
    <div class="boxTabH6"></div>
    <div class="boxTabH1" onClick="document.getElementById('tabHeadlines').className = 'tabHAlles'; headlines('alles');" onMouseOver="this.style.cursor='pointer';" onMouseOut="this.style.cursor='default';"></div>
    <div class="boxTabH2" onClick="document.getElementById('tabHeadlines').className = 'tabHNieuws'; headlines('nieuws');" onMouseOver="this.style.cursor='pointer';" onMouseOut="this.style.cursor='default';"></div>
    <div class="boxTabH3" onClick="document.getElementById('tabHeadlines').className = 'tabHArtikelen'; headlines('artikelen');" onMouseOver="this.style.cursor='pointer';" onMouseOut="this.style.cursor='default';"></div>
    <div class="boxTabH4" onClick="document.getElementById('tabHeadlines').className = 'tabHVideos'; headlines('videos');" onMouseOver="this.style.cursor='pointer';" onMouseOut="this.style.cursor='default';"></div>
    <div class="boxTabH5" onClick="document.getElementById('tabHeadlines').className = 'tabHScreens'; headlines('screens');" onMouseOver="this.style.cursor='pointer';" onMouseOut="this.style.cursor='default';"></div>
</div>
<div id="headlines_ajax">
</div>
.

Standaard wordt tab met alles getoond. Je kunt ook op de andere tabs klikken om content te filteren.

Er wordt een PHP file aangeroepen die resultaten uit de DB haalt en de rijen uitleest. Na de eerste 10 items wordt er een banner getoond.

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
<div id="bannerCenter" class="bannerCenter">
    <script language="JavaScript" type="text/javascript">
        // aangeleverde JS code om banner te tonen
    </script>
</div>

<script language="JavaScript" type="text/javascript">
    function showBannerCenter() {
        if (document.getElementById('bannerCenter').clientHeight <= 14) {
            document.getElementById("skinBoxItemAdd").style.display = 'none';
            document.getElementById("bannerCenter").style.display = 'none';
        }
        
    }
</script>


De banner wordt niet getoonden de functie showBannerCenter() weigert ook dienst. De show functie is om te kijken of er wel of geen banner staat. Staat deze er niet, dan moeten twee divs verborgen worden om marges van de div weg te halen.

Hoe zorg ik er nu voor dat de banner wel getoond wordt tussen de headlines en dat de show functie goed wordt uitgevoerd?
 



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.