Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum.
Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden.
Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
hoe reload page eenmalig nadat op anchor geklikt
Het gaat om de volgende functie waarin een paar anchors geechood worden:
Op regel 19 wordt de hele meuk geechood. Hoe krijg ik het nu spits dat er een eenmalige page reload plaatsvind als er op een anchor geklikt is?
foreach($Reactions as $Action) {
if(CheckPermission($Action->Permission)) {
$CountString = ($ShowCount && $Action->Count) ? $Action->Count : '';
$ActionsString .= Anchor(
Wrap(' ', 'span', array('class' => 'ReactSprite React-' . $Action->ActionID . ' ' . $Action->CssClass)) .
WrapIf($CountString, 'span', array('class' => 'Count')) .
Wrap($Action->Name, 'span', array('class' => 'ReactLabel')), 'react/' . $Type . '/' . $ID . '/' . $Action->ActionID,
array(
'class' => 'Hijack ReactButton',
'title' => $Action->Tooltip)
);
}
}
$AllActionsString = Wrap($ActionsString, 'span', array('class' => 'ReactMenu'));
if($Echo) {
echo $AllActionsString;
return true;
}
else {
return $AllActionsString;
}
}
}
Op regel 19 wordt de hele meuk geechood. Hoe krijg ik het nu spits dat er een eenmalige page reload plaatsvind als er op een anchor geklikt is?
Getagd:
Login of Registreer om te reageren.
Reacties
header("location: ".$_SERVER['REQUEST_URI'])
Maar wat ik niet snap, waarom zou je een refresch willen na een klik op een anchor, waarom maak je er niet gewoon een link van?
Waar het eigenlijk om gaat is die icoontjes Inzichtvol, Excellent, Lol en Thank You. Als je daar op klikt wordt door het javascript zoals het nu is de classe "gehijacked" waardoor er gelijk een 1 achter het anchor komt te staan. Maar het icoontje dat geplaatst wordt in de classe UserReactionsWrap wordt pas getoond na een refresh. En dat wil ik dus eigenlijk ook direct laten verschijnen zonder refresh.
Hierondr zie je in de eerste Public function hoe de anchors geechood worden:
In regel 8 worden ze toegekend aan de variable en op regel 23 worden ze geechood.
Op regel 13 wordt gelijk de classe veranderd in Hijack waardoor de 1 bij het anchor gelijk izchtbaar wordt zonder refresh.
Pas in de public function erna vind de class parsing plaats waarin het usericoontje met het Inzichtvol, Excellent..... icoontje erbij wordt geplaatst:
De classe is UserReactionWrap. Deze zou dus eigenlijk OOK direct moeten verschijnen als op anchor geklikt is. Maar dat krijg ik niet spits.
Anders moet je de gehele pagina als een string resolven en daarna met 1 echo aan het eind aan de browser doorgeven. Dan is gegarandeerd alles geparsed door PHP.
Dat is nu zeker de beste oplossing. Als je een andere pagina wilt laden, dan kun je alles tot dan aangemaakt dumpen, toch niet nodig.
De header / location optie van php kun je dan gebruiken.
Dit werkt alleen als het het eerste commando is wat gegeven wordt. Dit gaat zelfs al fout als je een lege HTML regel hebt.
Hier wordt de link gecreeerd:
Ik zie als iemand het aanvinkt kan ik het weer uitvinken ?
Deze regel staat er ook bij maar had ik hierboven weggelaten: