Jquery werkt niet met PHP/MySQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter Overdam

Peter Overdam

22/08/2012 18:14:33
Quote Anchor link
Beste Mensen,

Ik zit met een probleem, ik heb op mijn website een PHP script draaien die in verbinding staat met MySQL. Nu Heb ik dus binnen dit script een WHILE loop zitten voor de volgende echo in voorkomt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
echo "
<div class='content'>
 <div class='jq_container'>
 <div class='jq_header'>$jq_header</div>
 <div id='meerminder' class='jq_text'><p>$part_one</p> <p>$part_two</p></div>
</div>
</div>
"
;
?>


De laatste div (meerminder) moet dus een groot stuk tekst verstoppen en doormiddel van een link kan hij opengeklapt worden m.b.v. JQuery.

Als ik in de tabel in MySQL dus meerdere id's aanmaak dan weergeeft hij de eerste id volledig correct en werkt de JQuery netjes hoe het hoort. Maar bij de volgende id weergeeft hij wel de divjes en de $jq_header maar weergeeft hij niet de tekst eronder.

hieronder als toevoeging het Jquery script:

$( function () {
$("div#meerminder p:not(:first)").hide();
$("div#meerminder p:first").append("<a href='' class='toggle'>Toon Meer...</a>");

$(".toggle").toggle( function () {
$("div#meerminder p:not(:first)").slideDown();
$(this).text('Toon Minder...');
}, function () {
$("div#meerminder p:not(:first)").slideUp();
$(this).text('Toon Meer...');
});
});

Wie weet waar dit aan kan liggen?

Groetjes
Peter
 
PHP hulp

PHP hulp

22/11/2024 09:15:54
 
Obelix Idefix

Obelix Idefix

22/08/2012 18:47:34
Quote Anchor link
correct quoten: http://www.phphulp.nl/php/tutorial/php-algemeen/correct-quoten/772/
en variabelen buiten quotes.
 
Flip --

Flip --

22/08/2012 18:48:12
Quote Anchor link
een element id moet uniek zijn voor de html pagina.
Probeer zoiets:
print('<div id="meerminder_' . $counter . '" class=... >');
 
Peter Overdam

Peter Overdam

23/08/2012 09:46:25
Quote Anchor link
Flip -- op 22/08/2012 18:48:12:
een element id moet uniek zijn voor de html pagina.
Probeer zoiets:
print('<div id="meerminder_' . $counter . '" class=... >');


Dit had ik inderdaad over het hoofd gezien alleen de id veranderen helpt ook niet heb geprobeerd om de id die hij uit de Db haalt te koppelen aan de id van de div dus dat id"meerminder" wordt id="meerminder_1" etc etc en dit helpt niet.



Toevoeging op 23/08/2012 10:21:47:

Obelix en Idefix op 22/08/2012 18:47:34:
correct quoten: http://www.phphulp.nl/php/tutorial/php-algemeen/correct-quoten/772/
en variabelen buiten quotes.


Bedankt voor de tip heb me script meteen aangepast weer wat geleerd. Thanx



Toevoeging op 23/08/2012 10:27:49:

Mijn script ziet er momenteel als volgt uit. Moet ik nu niet iets in het Jquery gedeelte aanpassen zodat hij het script uitvoert per id?

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
<?php
     while ($row = mysql_fetch_assoc ($extract))
     {

         // Data ophalen
         $jq_header    = $row ['jq_header'];
         $jq_text    = $row ['jq_text'];
         $counter    = $row ['id'];
        
         $part_one = substr ("$jq_text", 0, 440); // Het eerste deel
         $part_two = substr ("$jq_text", 440); // Het laatste deel
        
         // Data laten zien

         print ('
             <div class="content">
             <div class="jq_container">
                <div class="jq_header"> '
. $jq_header .'</div>
                <div id="meerminder_'
. $counter . '" class="jq_text"><p> '. $part_one .' </p> <p> '. $part_two.' </p></div>
            </div>
            </div>
            '
);
     }

?>
 
Flip --

Flip --

23/08/2012 13:21:06
Quote Anchor link
Ja maak een functie in een JS bestand zoals deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function show_stuff(button, div) {
    $(function() {
        $(div).hide();
        $(button).click(function() {
            var options = {};
            $(div).toggle("blind", options, 500);
        });
    });
}


en dan in je html kan je een stukje javascript aanroepen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<script>show_stuff("#meerminder_<?=$counter?>", "#meerminder2_<?=$counter?>");</script>
Gewijzigd op 23/08/2012 13:21:30 door Flip --
 
Peter Overdam

Peter Overdam

23/08/2012 17:42:15
Quote Anchor link
Hey Flip,

Zo wil ik het dus niet hebben omdat er veel van die dingen dan op 1 pagina moeten komen.
 
Erwin H

Erwin H

23/08/2012 18:35:25
Quote Anchor link
Een id is voor het selecteren van een enkel element. Elk id moet dus uniek zijn.
Een class is voor het selecteren van een groep van elementen. Meerdere elementen kunnen dus dezelfde class hebben.

Met die twee kenmerken kan je verder. De eventhandler laat je reageren op een class, waardoor je met 1 event handler in jquery dezelfde functie kan hangen aan alle divjes.
In die functie lees je het id uit en op basis van dat id klap je iets open. Grofweg:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$('.jq_header').click(function(){
  var id = $(this).nextAll('.jq_text').first().attr('id');
});

Deze code gaat dus als de gebruiker op een jq_header div klikt en pakt het id van de eerstvolgende jq_text div.
 
Peter Overdam

Peter Overdam

23/08/2012 18:54:33
Quote Anchor link
Hey Erwin,

Ga hier vanavond ff mee stoeien in het script ben weer een hoop te weten gekomen.

Toevoeging op 24/08/2012 08:31:22:

Ik heb hem eindelijk aan de praat gekregen jongens allemaal heel erg bedankt.
 
Flip --

Flip --

25/08/2012 13:33:18
Quote Anchor link
Kan je laten zien hoe je het gedaan hebt ?
 
Peter Overdam

Peter Overdam

25/08/2012 13:43:45
Quote Anchor link
Ik denk zelf dat er ergens een fout was in het script want ik heb de php code opnieuw geschreven een counter toegevoegd aan de id en toen deed hij het wel.
 
John Berg

John Berg

25/08/2012 14:08:35
Quote Anchor link
Als aanvulling: het lijkt erop alsof je nu zelf een soort accordion functie hebt gemaakt?

Dat zit standaard in JQuery-Ui Demo
 



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.