Druk op de knop.....gegevens gewijzigd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guido Piket

Guido Piket

07/06/2007 02:14:00
Quote Anchor link
Is het mogelijk om met een knop gegevens te wijzigen, ik heb bvb een factuur verstuurd, en deze is nog niet betaald ik kijk in een overzicht en er staat keurig niet betaalt maar dat er dan een knop naast zit met betaalt en als ik hier dan op klik dat er in het overzicht ook komt te staan betaald.

Dus je krijgt een overzicht:

Factuur nr. | Klant | Adres | Status | knop
-------------------------------------------
1 | Piet | Veld | betaald |
2 | Piet | Veld | betaald |
3 | Piet | Veld | Niet betaald | Betaald
4 | Piet | Veld | Niet betaald | Betaald

En als je dan nu op betaald druk achter factuur nr 3 moet de status veranderen in betaald en de knop weg gaan
 
PHP hulp

PHP hulp

15/05/2024 23:25:11
 
Kevichill

Kevichill

07/06/2007 05:38:00
Quote Anchor link
Dat kan door middel van UPDATE FROM Tabel Etc..
 
Terence Hersbach

Terence Hersbach

07/06/2007 07:44:00
Quote Anchor link
dmv van javascript / ajax zou je dit mooi op kunnen lossen.. google eens wat rond ;)
 
Martijn Wieringa

Martijn Wieringa

07/06/2007 07:53:00
Quote Anchor link
Je kunt een formulier maken met (op 1 knop na) allemaal verborgen velden. In deze velden kun je dan de nodige gegevens verbergen, zoals het factuurnummer (id?) en de status..

het formulier verwijst dan bijvoorbeeld naar change_status.php.


Een voorbeeldje uit de hoge hoed:

Per factuur in het 'facturen overzicht' voeg je dit formuliertje toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form action="change_status.php" method="post">
<input name="factuur_id" type="hidden" value="[id van de factuur]">
<input name="status" type="hidden" value="betaald">
<input name="submit" type="submit" value="betaald">
</form>



-- change_status.php --

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

if(isset($_POST["submit"]))
{

    $factuur_id = $_POST["factuur_id"];
    $status = $_POST["status"];

    $sql = "UPDATE `facturen` SET `status` = '" . $status . "' WHERE `factuur_id` = '" . $factuur_id . "' LIMIT 1;";
    mysql_query($sql) or die(mysql_error());
}


header('Location: facturen_overzicht.php');

?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn Wieringa
 
Guido Piket

Guido Piket

07/06/2007 09:21:00
Quote Anchor link
Ik heb intussen dit in het overzicht gezet:

<td valign=\"top\" class=\"leftborder_td\"><form action=\"change_status.php?ID=$ID\" method=\"post\">
<input name=\"invoice_id\" type=\"hidden\" value=\"[invoice_id]\">

en een andere pagina aangemaakt met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    include("inc_connect.php")
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

if(isset($_POST["submit"]))
{

    $invoice_id = $_POST["invoice_id"];
    $Status = $_POST["Status"];

    $sql = "UPDATE `invoice` SET `Status` = '" . $Status . "' WHERE `invoice_id` = '" . $invoice_id . "' LIMIT 1;";
    mysql_query($sql) or die(mysql_error());
}


?>


maar dan kom ik op een andere pagina en die laat hij helemaal wit en de Status wordt niet verandert, maar ik heb het liefst dat hij op dezelfde pagina blijft.
 
Joren de Wit

Joren de Wit

07/06/2007 11:13:00
Quote Anchor link
$_POST['invoice_id'] heeft nu als waarde '[invoice_id]' omdat jij dat zo in je formulier hebt staan. Ik neem aan dat je daar in je formulier nog een variabele op wilt nemen.

Verder bestaat de hele variabele $_POST['Status'] niet omdat je deze niet opgenomen hebt in je formulier.

Wat je nu doet is voor elke niet betaalde factuur een formulier aan te maken waarin je die status kunt wijzigen. Echter je kunt ook overwegen om alles in 1 formulier te doen en dan gebruik te maken van checkboxen.

Achter elke niet betaalde formulier plaats je een checkbox van de volgende strekking:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="checkbox" name="betaald[]" value="[hiet id]">

Hierbij vul je dus voor de value van de checkbox het id van de factuur in dmv een variabele.

Als je nu het formulier verzend kun je controleren welke checkboxen aangevinkt zijn en welke dus geupdate moeten worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
foreach($_POST['betaald'] as $value)
{

     $sql = "UPDATE invoice
                SET Status = 'betaald'
                WHERE invoice_id = "
.$value;

     // query uitvoeren etc...
}
?>

Nog een kleine opmerking: gebruik nooit backticks (`) in je query, dat is rotzooi van MySQL en heeft totaal geen toegevoegde waarde.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.