Noob met urlencode probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marcel Santing

Marcel Santing

04/02/2015 12:17:00
Quote Anchor link
Hoi,

Ik heb een database koppeling lopen. Uit deze database haal ik mijn menu content. Nadat ik een Javascript had geplaatst doet mijn urlencode het niet meer.

hier gaat het ergens fout..
<code>
while($page = mysql_fetch_array($page_set)){
$output .="<li><a href='content.php?page='" . urlencode($info["id"]) .
"'>{$page["name"]}</a></li>";
</code>
Letop dit werkte perfect totdat ik een javascipt voor mijn grafische menu had toegevoegd

( function( $ ) {
$( document ).ready(function() {
$('#cssmenu > ul > li > a').click(function() {
$('#cssmenu li').removeClass('active');
$(this).closest('li').addClass('active');
var checkElement = $(this).next();
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$(this).closest('li').removeClass('active');
checkElement.slideUp('normal');
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#cssmenu ul ul:visible').slideUp('normal');
checkElement.slideDown('normal');
}
if($(this).closest('li').find('ul').children().length == 0) {
return true;
} else {
return false;
}
});
});
} )( jQuery );


Wat doe ik hier fout, wat zie ik niet.
Gewijzigd op 04/02/2015 12:18:30 door Marcel Santing
 
PHP hulp

PHP hulp

09/01/2025 19:50:48
 
Thomas van den Heuvel

Thomas van den Heuvel

04/02/2015 12:24:51
Quote Anchor link
JavaScript is pas actief nadat je document is geladen (client side), dus ik zie niet hoe dat van invloed kan zijn op PHP code (server side).

Je HTML code klopt in ieder geval niet, want waarden van properties moeten tussen "dubbele quotes".

Klopt je HTML document (verder) wel en ook de nesting van je list(item)s? Krijg je JavaScript foutmeldingen (dit kan je functionaliteit helemaal breken)?

Ik verwacht eerder een fout ofwel in HTML ofwel in JavaScript die roet in het eten gooit.

EDIT: Er klopt geen biet van je quotes, kijk maar eens naar de output van je PHP-code.
Gewijzigd op 04/02/2015 12:32:53 door Thomas van den Heuvel
 
Marcel Santing

Marcel Santing

04/02/2015 12:38:08
Quote Anchor link
Ik gebruik Jquery en ik vermoed dat daar het probleem in zit. Als ik namelijk de jquery-latest.min.js verwijder dan werkt de urlencode wel weer.
EDIT: mijn quotes deugen ook niet by the way.... ik gebruik nu "/blabla"/
Gewijzigd op 04/02/2015 12:42:05 door Marcel Santing
 
Thomas van den Heuvel

Thomas van den Heuvel

04/02/2015 12:50:58
Quote Anchor link
Ok, even een aantal dingen uitsluiten. Die $info['id'], daar zitten alleen getallen in?

Daarnaast, PHP heeft zijn ding al gedaan nog voordat JavaScript iets kan doen, dus het kan niet zo zijn dat JavaScript van invloed is op urlencode(). Ik zie simpelweg niet hoe dit mogelijk is.

Anyhoo, het heeft geen zin om een analyse te maken van een mogelijke fout of deze proberen op te lossen in een situatie waarvan je weet dat deze (situatie) niet klopt.

Ergo: repareer eerst je HTML document, en kijk dan of de fout nog steeds optreedt. Heb je je document al eens door een validator gehaald? Ben je nagegaan dat je JavaScript niet ergens anders breekt? Heb je alle caching uitgezet en je pagina('s) herladen zodat je zeker weet dat je naar de laatste versie van je webpagina kijkt?
Gewijzigd op 04/02/2015 12:52:06 door Thomas van den Heuvel
 
Marcel Santing

Marcel Santing

04/02/2015 12:58:14
Quote Anchor link
$info["id"] bevat alleen getallen

ben maar eens even niet eigenwijs geweest en heb ff alle scripts uitgeschakeld en css. Back to basic als het ware.

en verrek je hebt gelijk

Eerst even mijn menu
<php>
function navigation($sel_table1, $table2) {

$output = "<div id='cssmenu'>";
$output .= "<ul>";
$output .= "<li class='active'><a href='content.php'><span>Home</span></a></li>";

$info_set = get_all_info();
while($info = mysql_fetch_array($info_set)){

$output .= "<li class='has-sub'><a href=?info'" . rawurlencode($info["id"]) .
"'><span>{$info["menu"]}</span></a>";
$output .= "<ul>";
$page_set = get_pages_for_info($info["id"]);
while($page = mysql_fetch_array($page_set)){
$output .="<li><a href='content.php?page='" . rawurlencode($page["id"]) .
"'>{$page["name"]}</a></li>"; //inline substitution
}
$output .="</ul>";
}
$output .="</ul>";
$output .="</div>";
return $output;
}


</php>

ga hem weer opnieuw schrijven.... ik zie gewoon de fout niet.
Gewijzigd op 04/02/2015 12:59:00 door Marcel Santing
 
Thomas van den Heuvel

Thomas van den Heuvel

04/02/2015 13:01:40
Quote Anchor link
Kijk naar de broncode van je uiteindelijke gegenereerde HTML document.

Dat, wellicht in combinatie met een validator, zou je in de goede richting moeten sturen.
 
- SanThe -

- SanThe -

04/02/2015 13:04:42
Quote Anchor link
De ene <a href= heeft wel quootjes en een andere weer niet.
 
Marcel Santing

Marcel Santing

04/02/2015 13:14:20
Quote Anchor link
Stop gevonden

echt serieus dom....

enfin

dit had ik
$output .="<li><a href='content.php?page='" . rawurlencode($page["id"]) .
dit mest het zijn:
$output .="<li><a href='content.php?page=" . rawurlencode($page["id"]) .

dus uiteindelijk toch een quote te veel. Bedankt, je hebt me iig goed geholpen bij het troubleshooten van iets. 5 jaar geleden voor het laatst echt iets met PHP gedaan. Ik zie dat ik gebruik moet maken van mySQLi dit gaat er bij 6.0 uit.
 



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.