php form actie

Status
Niet open voor verdere reacties.

jens121

Gebruiker
Lid geworden
29 jan 2010
Berichten
23
Ik kan via een form naar een ander php bestand gaan en dan doet de php pagina daar zijn werk , maar hij verandert altijd van pagina .

<form action="register.php" method="post">
Username: <input name="username" type="text"/><br>
Password: <input name="password" type="text"/><br>
<input name="submit" type="submit" value="enter"/>
</form>

dus hij verspringt dan van u index naar register maar is het mogelijk als je op een button klikt dat het gwn gebeurt zonder naar een andere .php bestand verspringt ?
moet die php code dan tussen je form tag of is dit niet mogelijk ??

gwn dat je dan op de submit button klikt endat het op de index.php blijft en niet verspringt naar de register.php maar wel een php actie uitvoert ondertussen
 
Ja, dat kan. Met de "action" variabele in het <form> element geef je aan naar welke pagina wordt verwezen. Als je op die regel register.php verandert in index.php zal het formulier voortaan door index.php afgehandeld worden.

In index.php moet je dan natuurlijk wel zorgen dat er iets met de data gebeurt
PHP:
<?php
	if ($_SERVER["REQUEST_METHOD"] == "POST") {
		// doe iets met de data
	}
?>
 
Ja, dat kan. Met de "action" variabele in het <form> element geef je aan naar welke pagina wordt verwezen. Als je op die regel register.php verandert in index.php zal het formulier voortaan door index.php afgehandeld worden.

In index.php moet je dan natuurlijk wel zorgen dat er iets met de data gebeurt
PHP:
<?php
	if ($_SERVER["REQUEST_METHOD"] == "POST") {
		// doe iets met de data
	}
?>

maar als je op u index.php verschillende buttons hebt dan? bijvoorbeeld dat je
2 boxxen hebt waar je een aantal kunt ingeven en daarnaast telkens een button en als je die op die button klikt moet hij de box lezen hoeveel erin staat en zo de row 'geld' verminderen met 5 en de row 'steen' vermeerderen met 1 ( als ze 1 steen ingeven)
if(isset(submit2) $_row['geld'] - ($_POST['steen'] * 5)
ofzo ?
maar kwil dat het allemaal op de index.php blijft dus zal niet allemaal op die $_SERVER["REQUEST_METHOD"] == "POST") kunnen staan toch ?

en kheb een table met users waarin username, password, geld, steen staat
kan iemand me helpen heh :)

alvast bedankt
 
Wat je beschrijft is de normale werking van een formulier: je hebt een aantal velden die de gebruiker kan invullen met daarbij één submit knop. Als je het formulier verstuurt kun je met php alle waardes uit de $_POST array halen.

Maar ook meerdere formulieren zijn geen probleem: als je unieke waarden gebruikt om de elementen een naam te geven kun je bij de verwerking ervan nog een extra selectie inbouwen. Naast simpelweg te controleren of een veld bestaat kun je ook meteen controleren of de gebruiker wel een getal heeft ingevult:
PHP:
<form method="post" action="test.php">
	<input type="text" name="een" />
	<input type="submit" />
</form>
<form method="post" action="test.php">
	<input type="text" name="twee" />
	<input type="submit" />
</form>
<?php
	if ($_SERVER["REQUEST_METHOD"] == "POST") {
		if (isset($_POST["een"]) && ctype_digit($_POST["een"])) {
			echo "Formulier 1";
		} elseif (isset($_POST["twee"]) && ctype_digit($_POST["twee"])) {
			echo "Formulier 2";
		}
	}
?>
 
members.php
<?php
session_start();

require_once("connect.php");

// Check his status.
if (!empty($_SESSION[username])) // he got it.
{
$result = mysql_query("SELECT * FROM members WHERE username='$_SESSION[username]'")
or die(mysql_error());

// store the record of the "example" table into $row
$row = mysql_fetch_array( $result );


$_SESSION[username] = $row[username];
$_SESSION[geld] = $row[geld];
$_SESSION[steen] = $row[steen];
}
else // bad info.
{
echo "You are currently <b>NOT</b> logged in.";
}

?>

<html>
<body>
<br>
Welkom <? echo "$_SESSION[username]"; ?>
<br><br>
<?
$_SESSION[username] = $row[username];
$_SESSION[geld] = $row[geld];
$_SESSION[steen] = $row[steen];
echo "Je bent succesvol ingelogd. <br><br> Cash = $row[geld]<br><br> Stenen = $row[steen]";
?>
<br><br>

<form method="post" action="members.php">

<input type="submit" name="submit" value="-20" />
</form>
<form method="post" action="members.php">

<input type="submit" name="submit2" value="-50" />
</form>
<?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST[submit])) {

$sql = "UPDATE members SET geld='geld-20' WHERE username='$_SESSION[username]'";
$result = mysql_query($sql);


} elseif (isset($_POST[submit2])) {
$sql = "UPDATE members SET geld='$_SESSION[geld]-50' WHERE username='$_SESSION[username]'";
$result = mysql_query($sql);

}
}
?>

</body>


</html>

ik heb een probleem met mijn update ik moet de row geld verminderen met 20 met de eerste submit en met 50 verminderen met de tweede submit maar als ik submit doe dan gebeurt er niets met het cash en als ik submit2 op klik komt mijn cash direct te staan op 0 ...
weet iemand hoe ik dit oplos? cash staat op 1000 en verspringt direct naar 0 als ik op submit2 druk
alvast bedankt
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan