Ich habe zwei einreichen Schaltflächen in einem Formular. Wie kann ich feststellen, welche Schaltfläche serverseitig angeklickt wurde?
Antworten
Zu viele Anzeigen?Die aktualisierte Antwort ist die Verwendung der Schaltfläche mit formaktion y formtarget
In diesem Beispiel ruft die erste Schaltfläche eine andere URL auf /preview
in einer neuen Registerkarte. Die anderen drei verwenden die Aktion angegeben in der Formular Tag.
<button type='submit' class='large' id='btnpreview' name='btnsubmit' value='Preview' formaction='/preview' formtarget='blank' >Preview</button>
<button type='submit' class='large' id='btnsave' name='btnsubmit' value='Save' >Save</button>
<button type='submit' class='large' id='btnreset' name='btnsubmit' value='Reset' >Reset</button>
<button type='submit' class='large' id='btncancel' name='btnsubmit' value='Cancel' >Cancel</button>
Vollständig Dokumentation ist hier
Sie können es auch so machen (ich denke, es ist sehr praktisch, wenn Sie N Eingänge haben).
<input type="submit" name="row[456]" value="something">
<input type="submit" name="row[123]" value="something">
<input type="submit" name="row[789]" value="something">
Ein üblicher Anwendungsfall wäre die Verwendung verschiedener IDs aus einer Datenbank für jede Schaltfläche, so dass Sie später im Server wissen können, welche Zeile angeklickt wurde.
Auf der Serverseite (in diesem Beispiel PHP) können Sie "row" als Array lesen, um die ID zu erhalten.
$_POST['row']
ist ein Array mit nur einem Element, in der Form [ id => value ]
(zum Beispiel: [ '123' => 'something' ]
).
Um also die angeklickte ID zu erhalten, müssen Sie dies tun:
$index = key($_POST['row']);
Da Sie nicht angegeben haben, welche serverseitige Scripting-Methode Sie verwenden, gebe ich Ihnen ein Beispiel, das für PHP funktioniert
<?php
if(isset($_POST["loginForm"]))
{
print_r ($_POST); // FOR Showing POST DATA
}
elseif(isset($_POST["registrationForm"]))
{
print_r ($_POST);
}
elseif(isset($_POST["saveForm"]))
{
print_r ($_POST);
}
else{
}
?>
<html>
<head>
</head>
<body>
<fieldset>
<legend>FORM-1 with 2 buttons</legend>
<form method="post" >
<input type="text" name="loginname" value ="ABC" >
<!--Always use type="password" for password -->
<input type="text" name="loginpassword" value ="abc123" >
<input type="submit" name="loginForm" value="Login"><!--SUBMIT Button 1 -->
<input type="submit" name="saveForm" value="Save"> <!--SUBMIT Button 2 -->
</form>
</fieldset>
<fieldset>
<legend>FORM-2 with 1 button</legend>
<form method="post" >
<input type="text" name="registrationname" value ="XYZ" >
<!--Always use type="password" for password -->
<input type="text" name="registrationpassword" value ="xyz123" >
<input type="submit" name="registrationForm" value="Register"> <!--SUBMIT Button 3 -->
</form>
</fieldset>
</body>
</html>
Wenn Sie auf Login -> loginForm klicken