Door
Michael Visser
op 29-09-2017 17:58
gewijzigd op 30-09-2017 11:33
6.576 views
Hallo allemaal,
ik ben bezig met een tutorial popup systeempje alleen vroeg ik me af hoe ik nu precies een extern scriptje kan inladen
<?php
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="select Value from tabletest where uid='" . $uid. "' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$result=$result->fetch_assoc()["Value"];
}
print($result);
if($result==1)
{
echo "<script> loadModal()</script>";
}
?>
Het gaat om het gedeelte echo "<script> loadModal()</script>"; , dit komt in mijn index als iemand inlogt komt er een popup maar het externe scriptje heet popup.php hoe krijg ik die in de echo hierboven ? alvast bedankt
Een popup bevat nog steeds een compleet HTML-document (of dit zou moeten). HTML is stateless: deze weet niets van navigatiehistorie of andere geopende vensters. Je zult de popup dus ook als een standalone document moeten behandelen.
Als je wilt dat de popup $uid kent zul je deze op een of andere manier moeten doorgeven, bijvoorbeeld via de querystring ($_GET). Het is mij uit het bovenstaande voorbeeld ook niet duidelijk waar $uid in eerste instantie vandaan zou moeten komen.
Als je wilt dat de popup loadModal() kent zul je in deze popup (het HTML-document) JavaScript-code moeten includen (via script-tags of in uitgeschreven vorm) waar deze functie in aanwezig is.
Het feit dat je niet het gewenste resultaat krijgt ($result verschilt blijkbaar van "1"?) zou je al terug kunnen redeneren. Mogelijk ging je query fout (heb je foutafhandeling?) of deze had geen resultaten. Ook is het niet erg handig dat je $result gebruikt voor zowel een resultaat-resource of -object alsook de waarde van een specifieke kolom hiervan. Of de oorsprong lag dus inderdaad bij de ongedefinieerde variabele $uid.
Zorg dat je in ieder geval bij ontwikkeling van code deze mondig is in het melden+weergeven van fouten.
Dit doe je bijvoorbeeld door aan het begin van de code deze magische incantatie te zetten:
<?php
error_reporting(E_ALL); // welke fouten gemeld moeten worden
ini_set('display_errors', 'stdout'); // waar deze fouten gemeld moeten worden
?>
Mijn geld zet ik voorlopig op een undefined variable $uid, tenzij deze al ergens eerder gedeclareerd was, in welk geval je codefragment onvolledig was, in welk geval het verdomd lastig wordt om af te leiden wat er precies fout gaat.
Het php gedeelte werkt zeer zeker wel alleen komt die popup niet naar voren , omdat ik niet precies weer wat ik in echo "<script> loadModal()</script>"; moet neerzetten aangezien echo "<script> loadModal()</script>"; in mijn index.php staat en popup script wat idd helemaal html is popup.php heet
echo "<script> loadModal(popup.php)</script>"; zal niet werken lijkt me
Je haalt PHP en javascript door elkaar. Een popup of liever een modalzoals deze werkt puur met HTML, CSS en javascript met of zonder de Jquery library die jouw code hierboven gebruikt.
De trucs die toegepast worden zijn de volgende
- er wordt een extra div opgenomen die de popup vormt. Deze div krijgt de css regel position:fixed; (of position:relative; tov een ander element)
- vervolgens wordt de div verborgen met display:none;
- Met javascript zorgen we er voor dat als er op bijv een knop geduwd wordt de css regel display:none wordt veranderd in display:block etc
Dus als bijv een nieuw geregistreerde gebruiker inlogt kan hij geen popup tonen met
echo "<script> loadModal()</script>";
jQeury word ook gebruikt alleen weet ik niet hoe je dan een extern script aanroept er moet op geen enkele button worden geklikt hij moet gewoon op poppen