login  Naam:   Wachtwoord: 
Registreer je!
 Forum

postmail systeem

Offline daanlaan - 18/03/2009 23:34
Avatar van daanlaanMySQL interesse ik ben bezig met een postmail systeem maar nu moet ik een scriptje maken dat je verschillende posts tegelijk kan opslaan of verwijderen dmv selectievakjes.
maar ik kan maar niets bedenken hoe dat in zijn werk gaat... kan iemand me helpen, eventueel met een link naar een script ofzo

14 antwoorden

Gesponsorde links
Offline Rik - 19/03/2009 07:55
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
In html kun je een aantal checboxen als name verwijder[] meegeven. Als je dan als value het id zet bevat na het versturen de php variabele $_GET['verwijder'] of $_POST['verwijder'] (hangt van je form method af) een array met gecheckte vakjes.

  1. <form>
  2. a <input type="checkbox" name="verwijder[]" value="1" />
  3. b <input type="checkbox" name="verwijder[]" value="2" />
  4. c <input type="checkbox" name="verwijder[]" value="3" />
  5. <input type="submit" />
  6. </form>


Na versturen kun je de array afgaan en je queries uitvoeren.
Offline daanlaan - 19/03/2009 22:56 (laatste wijziging 19/03/2009 22:57)
Avatar van daanlaan MySQL interesse hm... hoe zou deze query er dan moeten uitzien?
WHERE id = 'de array' ??
Offline Koen - 20/03/2009 12:37 (laatste wijziging 20/03/2009 12:43)
Avatar van Koen PHP expert
  1. WHERE `id` IN('. implode(', ', $_POST['verwijder']) .')


Of iets dergelijks gok ik...
Anders even mbv PHP.net: foreach je array overlopen en zo afzonderlijke queries per ID uitvoeren.
Offline daanlaan - 20/03/2009 13:25 (laatste wijziging 20/03/2009 16:14)
Avatar van daanlaan MySQL interesse dit is mijn code nu:
  1. if(isset($_POST['delpm']))
  2. {
  3. echo implode(',', $_POST['verwijder']);
  4. }


dit werkt ook niet...
Offline Rik - 20/03/2009 16:41
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Natuurlijk werkt dat niet, je moet het ook nog in je query gebruiken. Kijk eens naar wat sliphead hierboven zegt. 
Offline daanlaan - 20/03/2009 17:04 (laatste wijziging 20/03/2009 17:13)
Avatar van daanlaan MySQL interesse ja dat weet ik ik heb het gewoon even uit de query gezet om te kijken of die echo wel iets bevat en die bevat dus niks...

EDIT: een deeltje heb ik gevonden maar nu zit ik met nog een probleem namelijk ik heb dus een form waarin al mijn pm's zitten maar ik wil de submit button van die fomt ergens anders plaatsen (ergens links in een menu) en als daar op geklikt wordt moet de query uitgevoerd worden

dus is het mogelijk om de submit van een form buiten de fotm te plaatsen op een of andere manier?
Offline Rik - 20/03/2009 22:48
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Zet eens wat meer code op plaatscode.be, dan is de fout wat beter te vinden hoop ik.

De submit button van een formulier moet binnen de form-tags staan. Natuurlijk kun je met css heel wat gaan schuiven, maar makkelijker zal het zijn om die knop los te zetten en er een onclick event aan toe te voegen dat de submit() op het betreffende formulier uitvoert.
Offline daanlaan - 20/03/2009 23:28 (laatste wijziging 20/03/2009 23:30)
Avatar van daanlaan MySQL interesse hier is de link dan kan je ook meteen alles uitvoeren
inlog: user - php
http://jmdmaint...;sub=inbox
nu zie je dat de "verwijder" knop UIT het formulier staat, als deze erin zou staan zou deze helemaal onderaan alle berichten staan.
Maar er MOET toch een oplossing zijn want hotmail enzo gebruikt het ook zo, niet?
Offline Rik - 21/03/2009 10:04
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Er staan nu geen berichten op die pagina, maar ik zie dat je name="delpm" gebruikt op de knop. Dat klopt niet, want je gebruikt name="delpm[]" op het formulier dat je moet verzenden. Ik heb er dit van gemaakt:
  1. <form method="post" name="inbox">
  2. a <input type="checkbox" name="delpm[]" value="1" />
  3. b <input type="checkbox" name="delpm[]" value="2" />
  4. c <input type="checkbox" name="delpm[]" value="3" />
  5. </form>
De inhoud van het formulier moet je zelf even aanpassen natuurlijk.

En dan kun je de knop zo overal zetten waar je wilt:
  1. <input type="button" value="verwijderen" onclick="document.inbox.submit()">
Offline daanlaan - 21/03/2009 17:26 (laatste wijziging 21/03/2009 17:29)
Avatar van daanlaan MySQL interesse ja zo was ik ook iets aan het zoeken maar
hoe kan ik nu met php checken of deze form gesubmit is?
want daarna mag hij pas doorgaan met verwijderen...
if(isset($_POST['inbox'])) ?
Offline Rik - 21/03/2009 17:37
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Met zoiets:
  1. if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delpm']) && is_array($_POST['delpm'])) {
  2. // Het formulier is verzonden met de juiste methode en velden --> query maken
  3. $query = '... WHERE `id` IN('. implode(', ', $_POST['delpm']) .')';
  4. }
Offline daanlaan - 21/03/2009 17:54
Avatar van daanlaan MySQL interesse isset($_POST['delpm']) => dit stukje gaat gewoon kijken of er wel iets aangevinkt is?
en dat eerste request method, is dat om te kijken of er een post form op dat moment uitgevoerd wordt?
Offline Rik - 21/03/2009 18:00
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Klopt, je kunt natuurlijk ook één van beiden gebruiken, dat zal bij normaal gebruik evengoed werken.

Het is netjes om te kijken of het formulier echt met post als methode is verstuurd en als je heel veel code hebt is het oa ook handig om snel te zien waar formulierverwerking begint.
Offline daanlaan - 21/03/2009 18:09 (laatste wijziging 21/03/2009 20:36)
Avatar van daanlaan MySQL interesse maar ik heb ze denk ik beide nodig want je kan pb's ook opslaan en moet ik dus kijken of savepm of delpm geset is
Ik heb iets gedaan maar weet nie wat, is misschien weinig informatie EDIT: bedankt het werkt nu ;)

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s