Door
Marc -
op 05-01-2012 19:05
gewijzigd op 05-01-2012 19:06
4.737 views
Hallo!
Ik heb met php en jquery een reactie script gemaakt. Als je naar de pagina gaat worden de reacties met php uit de database gelezen en weer geven met foreach. Daar boven staan 2 knoppen; eentje om reactie's te weergeven en eentje om een reactie toe tevoegen. Als je dus op 'reactie toevoegen' klikt fadeOut() hij het div met reactie's en fadeIn() hij het div om een reactie toe tevoegen. Als je dan een reactie hebt toegevoegd en op reacties weer geven klikt fadeOut() hij het div om een reactie toe tevoegen en fadeIn() hij weer het div met alle reacties. Het probleem is alleen dan dat hij de query niet opnieuw doet en dus niet de gegevens herlaad. Hoe kan ik zorgen dat als de gebruiker op reacties weergeven klikt de query opnieuw word gedaan en dat het div wordt weergeven? ik heb al geprobeerd om met $.ajax in een ander document de gegevens uit de database te halen en dan met $('#div').html(data) te weergeven maar dat gaat mis omdat ik foreach gebruik maar dan komt het allemaal tegelijk en gaat het mis. Wie o wie kan mij helpen?
Dit bedoel ik inderdaad. Dit is namelijk de totale HTML die je in de pagina invoegt na de AJAX call. Op zich valt het me op dat er nog een h5 tag bij staat. Die lijkt me op zich standaard, dus die zou je niet elke keer mee hoeven te sturen, maar als in je pagina kunnen hebben of de javascript kunnen laten maken. Daar zit waarschijnlijk de fout niet overigens.
Volgende vraag van mijn kant zou zijn hoe de CSS eruit ziet voor deze divs. Opmaak is over het algemeen CSS, dus als je tekst doorloopt zit er wellicht mis in je CSS of in de classes die je gebruikt voor de divs. Heb je daar al naar gekeken?
<div id="maincontainter">
<div style="clear:both;" id="content">
<div id="left">
<div class="comments_of_music_by_id" id="id_of_comments_of_music_by_id">
</div>
</div> <!-- end of left -->
</div> <!-- end of content -->
</div> <!-- end of maincontainer -->
De dynamische HTML komt terecht in "id_of_comments_of_music_by_id".
In de CSS die je boven geeft zie ik geen enkele style rule die iets zegt over de breedte of overflow van de nieuwe divs die je genereert. Ik krijg dus het idee dat het in een van de parent elementen moet zitten. Wat is de CSS voor die divs?
Heb je overigens Firefox met Firebug? Daarin kan je namelijk heel snel zien welke CSS rules gelden voor een willekeurig element op de pagina, ook dynamische elementen.
ja ik heb firebug en gebruik ik ook erg vaak! ik heb dus left waar zegmaar alle content in staat dus ook het dynamische gedeelte een width gegeven. En wat ik al had gedaan was de code droog zonder php er in zetten en dan werkt het wel! ook heb ik al geprobeerd met wat width's maar heb het maar weer terug gezet. Want wat ik eerst deed was gewoon de css en html creeƫn en daarna pas php en jquery. maar hier de css:
firebug... Chrome Developer Tools (of eigenlijk Webkit WebInspector) is stukken beter! (en in een veel beter browser)
Dat hij gewoon door gaat komt omdat het 1 woord is. Als je een zin erin stopt breekt hij wel de regel af en gaat eronder verder. Dus als je allemaal tekens achter elkaar hebt breekt hij hem niet af.
Hoe kun je dit oplossen? Gebruik:
.reaction_message
{
word-wrap: break-word;
}
Dit breekt je woorden ook, dit is CSS3 maar werkt in alle browsers zelfs IE5.5+.
hmmm, ik begin uit ideeen te geraken... Als het niet in je HTML zit en niet in de CSS dan kan ik me alleen nog bedenken dat je ergens iets in javascript moet hebben dat die breedte zet als de pagina wordt geladen, maar niet later. Alleen dat lijkt me echt heel erg ver gezocht....
Ik vrees dat ik je dan niet verder meer kan helpen :-(