Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

php/javascript confirm werkt niet

Pagina: 1
Acties:
  • 441 views

  • efan
  • Registratie: Januari 2001
  • Niet online
ik heb de volgende javascript code:
code:
1
2
3
4
<script type="text/javascript">
function Confirmation()
{if(confirm("Order definitief verwijderen?"))window.location.href="order_delete.php?id='. $order['id'] .'";}
</script>


en verderop in de php file de volgende code, die ervoor zou moeten zorgen dat er een popup komt met OK/annuleren:
code:
1
echo '<a href="javascript: Confirmation()">Verwijder</a>';


echter werkt deze nu niet goed. ik krijg netjes de popup met OK en annuleren,en zodra ik OK klik, dan laadt de order_delete.php pagina, maar krijgt z'n id niet mee.
Iemand enig idee wat ik verkeerd heb gedaan met deze code?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ido schreef op woensdag 20 april 2011 @ 15:51:
de order_delete.php pagina, maar krijgt z'n id niet mee.
Iemand enig idee wat ik verkeerd heb gedaan met deze code?
Ja; je geeft het ID helemaal niet mee ;) (Los van 't feit dat 't javascript pseudo-protocol gebruiken niet nodig is; je kunt beter een onclick ofzo gebruiken). Je bedoelt waarschijnlijk zoiets:

PHP:
1
echo '<a href="javascript: Confirmation('. $order['id'] .')">Verwijder</a>';

JavaScript:
1
2
3
4
function Confirmation(id) {
  if(confirm("Order definitief verwijderen?"))
    window.location.href= 'order_delete.php?id=' + id;
}

Als je code post, gebruik dan code tags a.u.b. En lees je even in in 't verschil tussen POST en GET en idempotentie ;)

[ Voor 67% gewijzigd door RobIII op 20-04-2011 16:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • mithras
  • Registratie: Maart 2003
  • Niet online
"order_delete.php?id='. $order['id'] .'"

Dit is niet de syntax voor javascript om een string op te bouwen. Heb je wel door dat je met php (server side) en javascript (client side) zit te werken?

Als je een javascript array hebt onder de naam order, kan je concat doen met +:
"order_delete.php?id=" + order['id'];

[ Voor 5% gewijzigd door mithras op 20-04-2011 15:54 ]


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

JavaScript:
1
2
3
4
<script type="text/javascript">
function Confirmation()
{if(confirm("Order definitief verwijderen?"))window.location.href="order_delete.php?id='<?php echo $order['id']; ?>'";}
</script>

Denk aan de scheiding tussen client & server. ;)

Sole survivor of the Chicxulub asteroid impact.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:58

crisp

Devver

Pixelated

En nog ander verplicht leesvoer: CSRF ;)

Intentionally left blank


  • efan
  • Registratie: Januari 2001
  • Niet online
super, onderstaande code werkt prima! onclick had ik ook al geprobeerd maar kreeg dat (ook) niet juist werkend :)
RobIII schreef op woensdag 20 april 2011 @ 15:53:
[...]

Ja; je geeft het ID helemaal niet mee ;) (Los van 't feit dat 't javascript pseudo-protocol gebruiken niet nodig is; je kunt beter een onclick ofzo gebruiken). Je bedoelt waarschijnlijk zoiets:

PHP:
1
echo '<a href="javascript: Confirmation('. $order['id'] .')">Verwijder</a>';

JavaScript:
1
2
3
4
function Confirmation(id) {
  if(confirm("Order definitief verwijderen?"))
    window.location.href= 'order_delete.php?id=' + id;
}

Als je code post, gebruik dan code tags a.u.b. En lees je even in in 't verschil tussen POST en GET en idempotentie ;)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ido schreef op woensdag 20 april 2011 @ 16:06:
super, onderstaande code werkt prima!
Da's leuk voor je maar dat is niet zoals 't hoort; je hebt van mij en anderen in dit topic nog wat pointers en hints gehad. Doe jezelf een lol en verdiep je daar in voor je verder gaat.

[ Voor 7% gewijzigd door RobIII op 20-04-2011 16:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

AtleX schreef op woensdag 20 april 2011 @ 15:54:
JavaScript:
1
2
3
4
<script type="text/javascript">
function Confirmation()
{if(confirm("Order definitief verwijderen?"))window.location.href="order_delete.php?id='<?php echo $order['id']; ?>'";}
</script>

Denk aan de scheiding tussen client & server. ;)
Stiekem is ook dit gewoon niet goed, niet in de laatste plaats omdat je dan een functie moet gaan aanmaken per delete-knopje. Bovendien zie ik daar nog wat overbodige single quotes die roet in het eten gaan gooien. ;)

HTML:
1
<a href="order_delete.php?id=<?php echo $order['id']; ?>" onclick="return confirm('Order definitief verwijderen?');">

Zoiets zou ik doen, puur omdat het dan ook zonder Javascript blijft werken. ;) Uiteraard zou ik die onclick wel in een eigen functie gieten, maar het principe blijft hetzelfde.

Verder is dit hele topic gebaseerd op het feit dat de topicstarter niet weet wat het verschil is tussen clientside en serverside, en dat is toch echt wel de absolute basis van webdevelopment. Daar moet ook zonder ons wel uit te komen zijn: elke basistutorial voor PHP zal je uitleggen dat PHP-code uitgevoerd wordt voordat het naar de client gestuurd wordt en je dus dit soort dingen niet kan doen. ;) Bovendien helpt je instelling dat je de code van RobIII blind overneemt terwijl hij al aangeeft dat die niet compleet is ook niet echt. ;)

Dit topic gaat in elk geval op slot.

[ Voor 4% gewijzigd door NMe op 20-04-2011 16:14 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.