[Javascript] PHP script laten stoppen

Pagina: 1
Acties:

  • cutter
  • Registratie: November 2000
  • Laatst online: 28-09-2025

cutter

Wannabe i7 fanboy

Topicstarter
Ik heb een php scriptje. Daarin moet de noob-user een evenement toevoegen. Om een beetje aan de joesabillitie te denken is er een confirm box als er op die datum al een evenement staat. Een dag bestaat uit 24 uur, dus het zou kunnen zijn dat er meer evenementen op een dag zijn, dus er komt een keuze of iemand door wil of niet.
Probleem:
Ook al druk je op cancel, zodat de location.href aangeroepen wordt, het php script in de if (){} wordt uitgevoerd. Gevolg: de database wordt geupdate. waar kan ik een exit; tussen zetten om het geheel op te laten houden als de user op cancel duwt.

Heb al gedacht om in de javaconfirm een variabele te definieren die door een if(isset($var)) in php gelezen kan worden. Maar dat schijnt niet te kunnen.

Ik betwijfel zelf of het zo kan omdat javascript client- en php serverside is. Javascript kan, denk ik, pas uitgevoerd worden als de pagina bij de bezoeker is geladen. En het php gebeuren is dan natuurlijk al uitgevoerd. waarschijnlijk maar terug naar de tekentafel met mijn design.....

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
if ($submit == "AddEvent")
    {
        include("dbconnect.php");
         $checkexist = mysql_query ("select id from eventtable where datum = '$date'")or die (mysql_error());;
        $row = mysql_fetch_array($checkexist);
        $id = $row["id"];
        mysql_free_result ($checkexist);
        if(isset($id)) {
        print "<script>javascript: if(confirm('Er is al een evenement op $eventdate. 
Kies OK om het evenement toch toe te voegen.')) {} else {parent.location.href = 'admincalender.php';}</script>";
        }
            $query = mysql_query("insert into eventtable (event , omschrijving , datum)
        values ('$event','$omschrijving','$date')") or die (mysql_error());
        }
?>

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 13-09 09:52

Pelle

🚴‍♂️

Terug naar de tekentafel ja :)

Het PHP-script wordt in z'n geheel geparsed voordat het wordt via de webserver wordt doorgegeven aan de user.

Dit soort dingen dus oplossen door de query (of andere acties) die je uit wilt laten voeren pas uit te laten voeren op het moment dat de user een confirm heeft gegeven.

Dus, in pseudo:
code:
1
2
3
4
5
kijk in PHP of er al een evenement is
  zo nee, voeg toe, redirect eventueel naar overzichtpagina
  zo ja, print code voor confirm box
    als user ja doet, dan redirecten naar pagina waar insert query wordt gedaan en daarna overzichtpagina
    als user nee doet, dan niks doen en redirecten naar overzichtpagina ofzo

Oftewel, doe nog geen insert-query in je script, en redirect de pagina alleen dan door naar een pagina waar die insert-query gedaan wordt als je confirm() true is.