Hey iedereen,

Ik ben bezig met een planning applicatie. Ik heb met een query bon gegevens uit een database gehaald en in een tabel gezet. Nu wil ik graag een button gereed aan de tabel toevoegen (aan elke regel die gevonden is) die de volgende query uit gaat voeren als ik er op klik:

$update="UPDATE BON SET GEREED='J' WHERE ORDERNUMMER = '$x_ordernr' AND BONNUMMER = '$bonnr'";

Weet iemand hoe ik dit voor elkaar kan krijgen ? Ik weet dat het via een form action met een andere .php pagina kan, maar ik wil het graag op een pagina houden. Is dit mogelijk??

Met vriendelijke groet,

Angela
Ja dat kan.

Voorbeeld ::


<form method="POST">
<input type="text" name="input">
<input type="submit" value="Verstuur">
</form>
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
echo "Formulier en afhandeling op dezelfde pagina.<br> jij hebt ".$_POST["input"]. " opgegeven." ;
}
?>
Je kunt het prima op 1 pagina houden door het action attribuut van je <form> tag naar dezelfde pagina te laten verwijzen.

In php kun je vervolgens controleren of er een formulier gepost is en het eventueel verwerken:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Verwerk formulier
}

// Toon tabel
?>
Ik snap het niet helemaal zouden jullie een voorbeeld willen geven?De code die ik nu heb ziet er als volgt uit :

$update="UPDATE BON SET GEREED='J' WHERE ORDERNUMMER = '$x_ordernr' AND BONNUMMER = '$bonnr'";


<form action='$update' method='post' name='gereedmelden>
<input type='submit' name='submit' onClick=$update value='Gereed melden'>
</form>
Aanvulling: als je een rijtje gegevens op je pagina hebt, en je wilt bij elke bon zo'n button, dan moet je script wel weten welke button er is aangeklikt. In plaats van een button kun je misschien beter een hyperlink maken die er ongeveer zo uit ziet:

<a href="?id=1&amp;action=gereed">gereed</a>

Op die manier kun je via $_GET['id'] en $_GET['action'] bepalen welke record je moet updaten met je script.
Ja hoor wil het wel even voorkauwen voor je :)


<form method="POST">
<input type="hidden" name="query" value="<?php echo $update ?>"
<input type="submit" value="Gereed melden">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"]=="POST")
{
    if (mysql_query($_POST["query"])) 
    {
        echo "Succesvol verwerkt" ;
    }
    else
    {
        echo "This script just died" ;
    }
}
?>
[edit]
Of natuurlijk wat jan zegt maar mijn manier werkt ook :p
[/edit]
Jan,

Ik snap wat je bedoeld maar het moet een button worden. Ik snap de bovenstaande antwoorden niet ,dus misschien laat ik het wel zitten. In iedergeval bedankt voor je antwoord !

Angela
Ik heb een voorbeeldje voor je gemaakt. Het kan ook wel met een button hoor, als je nog een paar minuten hebt ;-)
*Me feels ignored :'(*
@ Jacco: jouw manier werkt maar voor 1 record en niet voor een hele rij. Dan krijg je namelijk allemaal hidden inputs.
Jan Koehoorn schreef op 26.09.2007 11:51
Ik heb een voorbeeldje voor je gemaakt. Het kan ook wel met een button hoor, als je nog een paar minuten hebt ;-)


Tuurlijk ik wacht. Ik geef zelf niet zo snel op dus ik pruts zelf ook even verder !

Reageren