jquery dialog open na een submit (vanuit php)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • rob3rt
  • Registratie: Maart 2009
  • Laatst online: 14-09 00:03
Ik moet op een pagina wat reeds wordt gebruikt iets toevoegen, probleem is dat ik niet veel kan/mag wijzigen van de bestaande pagina.

Wat ik heb is een php pagina met naw gegevens.
De bedoeling is dat er een link bij komt op deze pagina welke een jquery dialog popup open maakt met nieuwe velden voor invoer.

Vervolgens een submit knop, deze doet een submit naar dezelfde PHP pagina, begin van de pagina wordt gezien als er een S_POST wordt gedaan, hier wordt gekeken of de ingevulde waardes correct zijn en indien ja geupdate in de database bij de bestaande gebruiker.

Dit alles werkt al prima nu, probleem wat ik nu heb is dat die dialog popup van jquerie vanzelf weer moet worden geopend nadat de database is geupdate zodat de gebruiker direct weer de popup met de gewijzigde gegevens ziet.

Dit laatste wil me niet lukken dus.(het openen van de popup MET gegevens).

Dit is de popup die je via een link open maakt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     $(".showCashmigratie").click(function(){
       var id=$(this).attr("id");
        var outputInfo = $(this).attr('output');
        $("#cashmigratie_"+id).html(outputInfo);
          $( "#cashmigratie_"+id).dialog({
            title: "gegevens van id : "+id,
            width: 620,
            height: 430,
            modal: true,
            buttons: {
                close: function() {
                    $( this ).dialog( "close" );
                }
            }
        });
    });


Deze popup wordt dus aangeroepen vanuit een linkje op de pagina, (deze pagina mag niet (groot) worden veranderd)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT * FROM database
while(-- mysql--) {
 $inhoud3b = $waardesdb_etc;
 $inhoud3b .= "<form blabla self>";
 $inhoud3b .= "php waardes zijn zo \"$values\"";
 $inhoud3b .= "ook html en php code, bv form waardes etc \"$phpvalues\" etc";
 $inhoud3b .= "<submit>";
 $inhoud3b .= "</form>";
}

echo "<div id=\"cashmigratie_" . $id . "\" style=\"display:none\"></div>\n";
echo "<a href='#' output='" .$inhoud3b . "' class='showCashmigratie' id='" . $id . "' >open popup</a>\n";


De $inhoud3b wordt vanuit een while loop in php/mysql gegenereerd, dit kunnen dus meerdere linkjes op dezelfde pagina zijn. Dit werkt dus allemaal gewoon, ook de submit en database update daarna.

Wat ik dus wil is dat dezelfde popup weer wordt geopend na de db update.
Dit krijg ik dus niet werken, heb ook geen idee hoe dit te doen, jquery handleiding geeft eigenlijk niks weer wat ik daarvoor kan gebruiken.

Zoek dus iets wat ik in de while kan zetten als:
[php]
if ($id=$update) {
open div of auto klik dat linkje wat die div opent
}


Iemand een idee hoe dit **eenvoudig** is op te lossen.
Probleem is dat ik in de bestaande code niets kan wijzigen, het betreft een werkende pagina waar bezoekers gebruik van maken en de wijziging is tijdelijk (is migratie van oud naar nieuw systeem, dit is voor het oude systeem).

Wie o wie kan me enigszins op weg helpen doe dit snel en simpel te realiseren is, de met specifiek id dialog open maken vanuit de while in php.

Acties:
  • 0 Henk 'm!

  • Mercatres
  • Registratie: September 2009
  • Laatst online: 13-09 16:34
Kan je niet beter kijken naar "modal dialogs"? jQuery UI heeft daar wel een paar mogelijkheden in. Dan een beetje pielen met callback-functions (en waarschijnlijk een aparte div voor je "Update").

Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 13-09 17:39

krvabo

MATERIALISE!

Je zou eventueel vanuit je eigen formulier een POST kunnen doen met jquery zelf ($.ajax), met een callbackfunctie die je meegeeft zodat je hetzelfde dialog kunt hergebruiken (bestaande html verwijderen).

Of je submit je formulier naar "verwerk.php?nuttelozestring" (maar wel method="post") en controleert met jquery/javascript/php of die nuttelozestring is meegegeven. Het automatisch openen van de dialog doe je in de onload van jquery.

[ Voor 4% gewijzigd door krvabo op 03-05-2012 16:10 ]

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • HitDyl
  • Registratie: December 2008
  • Laatst online: 05-08 10:07
Gebruik AJAX, dat zit in jquery ingebakken.

Laat ajax een php pagina openen die enkel de laatste ID meegeeft.
Laat jquery kijken of die hoger is, is die hoger open het venster.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var oudeID = 0;

function checkDB(){
    $.ajax({
        url: "getLastID.php",
        cache: false
    }).done(function( html ) {
        if(html > oudeID){
            //open hier venster
            var t=setTimeout("checkDB()",100); //Wacht 100ms anders zou hij te vaak kunnen check bij een snelle server
        }
        
        oudeID == html;
    });
}


http://api.jquery.com/jQuery.ajax/