cocktailz82
Goto Top

PHP - Mehrere Buttons mit einem Action-Script

Hallo,

ich bin gerade dabei eine kleine Anwendung zu schreiben und versuche mich mit PHP. Da ich bislang nur mit VB Datenbank- GUIs geschrieben hab, hab ich noch kleine Verständnissfragen bei PHP und hoffe auf ein klein bischen Hilfe.

Also zum Problem:

ich habe eine bislang eine schon gut funktionierende Seite gebastelt. Nun habe ich ein Formular in dem ich 3 Buttons habe, die eigentlich auch etwas bewirken sollten. Allerdings machen alle 3 Buttons einfach mal garnichts ausser der "Push - Animation"

Da das ganze nun etwas wenig ist für nen Button hab ich schon etliches ausprobiert, aber es will einfach nicht klappen.
Der Code den ich dafür nutze sieht bislang so aus:

<?php
include ("../php/db.php");  
?>
	<h2 class="title">Stammdaten bearbeiten - Hersteller</h2>  
	</div>

<div>

<?php

echo 'Bereits vorhanden : <select name="Herst_Name">';  

$ergebnis = mysql_query("SELECT `Herst_Name` FROM `tbl_Hersteller` order by `Herst_Name`");  

while($row = mysql_fetch_array($ergebnis))
{
   echo '<option value="' .$row['Herst_Name'] .'">'.$row['Herst_Name'].'</option>';  
}

echo '</select>';  
?>

<form action="../php/stamm-herst.php" method="post">  
<br />
 <p>Neuer Hersteller: <input type="text" name="txt_hersteller" /></p>  
 <p> <br /></p>
 <p><input type="button" name="submit" value="Speichern"/> <input type="button" name="submit" value="Bearbeiten"/> <input type="button" name="submit" value="Entfernen"/></p>  
</form>
		
</div>

Das die divs zu und auf gemacht werden in dem Ding liegt daran, dass die Mainseite schon welche öffnet und die hier drin geschlossen werden. Das passt soweit schon alles.

und die "stamm-herst.php" sieht dann so aus:

/*<?php
switch ($_REQUEST['button']) { 
    case "Speichern": 
        echo $_POST['txt_hersteller']; 
        break;
    case "Bearbeiten": 
        echo $_POST['txt_hersteller']; 
        break;
    case "Entfernen": 
        echo $_POST['txt_hersteller']; 
        break;	
    case default:
        echo $_REQUEST['btn_herst']; 
        break;
}
?>
*/

<?php
if (isset($_REQUEST['button'])) {  
echo "Bearbeiten";  
}

if (isset($_REQUEST['button'])) {  
echo "Speichern";  
}

if (isset($_REQUEST['button'])) {  
echo "Entfernen";  
}
?>

ich kommentiere den einen Teil immer aus, um mit dem jeweils anderen dann weitere Dinge zu probieren, aber es will halt nicht. Kann mir jemand erklären was ich falsch mache? Die richtige Verarbeitung ist hier noch garnicht drin, da ich ertmal ne grundsätzlich Funktionalität hinbekommen will und daran schon scheitere.

Das blöde ist einfach, das man jemanden der noch nicht mit PHP gearbeitet hat, ziemlich viel erzählen kann, zumal mir schon kleinigkeiten wie ein vernünftiger Debugger fehlen und es da auch schoenbar keinen gibt face-sad

Naja. Aber wer lernen will muss halt viel lesen und fragen.

Wie gesagt. Wäre super wenn mir da jemand mal Tipps geben könnte wie man mehrere Buttons mit einem Script realisiert.

Danke schoonmal

Gruß

Tailz82

Content-ID: 204924

Url: https://administrator.de/forum/php-mehrere-buttons-mit-einem-action-script-204924.html

Ausgedruckt am: 19.02.2025 um 22:02 Uhr

nxclass
nxclass 12.04.2013 aktualisiert um 23:26:32 Uhr
Goto Top
Allerdings machen alle 3 Buttons einfach mal garnichts ausser der "Push - Animation"
<input type="submit" name="button" value="Speichern" />  
.. das ist ein button zum senden des Formulares.
Cocktailz82
Cocktailz82 13.04.2013 um 12:38:54 Uhr
Goto Top
Also muss ich den input type in "submit" ändern und den namen anpassen oder wie versteh ich das nun?

Buttons hab ich ja grundsätzlich schon nur haben die keine Funktion. Versteh irgendwie nicht was du mir damit sagen willst.
dog
dog 13.04.2013 um 14:52:52 Uhr
Goto Top
<input type="button"

Wie du der HTML-Spezifikation entnehmen kannst:

http://www.w3.org/TR/html4/interact/forms.html#input-control-types
http://www.w3.org/TR/html4/interact/forms.html#push-button

Haben Input Type=Buttons keine Aktion, sondern sind nur für Javascript-ing gedacht.

Siehe Antwort von @nxclass

Ganz abgesehen davon:

switch ($_REQUEST['button']) {

Hier prüfst du ein Formularelement namens "button".
Dein Formularelement heißt aber:
<input type="button" name="submit" value="Speichern"/>  
                     ^^^^^^^^^^^^^

Und noch ein Tipp: Wenn du mehrere Submit-Aktionen brauchst, solltest du lieber einen Button (nicht zu verwechseln mit Input Type=Button) benutzen:
http://www.w3.org/TR/html4/interact/forms.html#h-17.5
Arano
Arano 13.04.2013 um 14:58:49 Uhr
Goto Top
Tag,

zum senden des Formulares
Versteh irgendwie nicht was du mir damit sagen willst
Wo ist denn bei deinen Button definiert was sie beim anklicken TUN SOLLEN ?
Du hast halt einfach __nur Buttons__.

Naja. Aber wer lernen will muss halt viel lesen und fragen.
3 x selfHTML - Formulare - Buttons zum Absenden oder Abbrechen

Und um noch mal auf deine Button zu zeigen:
Zitat: http://de.selfhtml.org/html/formulare/klickbuttons.htm
Klick-Buttons haben in reinem HTML keine sinnvolle Funktion.
[...]

Also passiert unterm Strich __genau das__, was du "programmiert" hast - nichts face-wink


Schönes WE noch
~Arano
Cocktailz82
Cocktailz82 16.04.2013 um 09:58:18 Uhr
Goto Top
Hallo,

erstmal Danke für die ganzen Tipps! Ich sag ja ich fange grad mit PHP an und bin es halt von VB gewohnt das ich nen Button auf ne form werfe, und dann direkt ne Funktion darein programmieren kann. Und da ist Button halt auch gleich Button... Aber gut. Dann hab ich schonmal gelernt, das bei html und php Button nicht gleich Button ist. face-smile

Zitat von @Arano:
Wo ist denn bei deinen Button definiert was sie beim anklicken TUN SOLLEN ?
Du hast halt einfach __nur Buttons__.

Das, so dachte ich zumindest, ist hier definiert:

<form action="../php/stamm-herst.php" method="post">   
<br /> 
 <p>Neuer Hersteller: <input type="text" name="txt_hersteller" /></p>   
 <p> <br /></p> 
 <p><input type="button" name="submit" value="Speichern"/> <input type="button" name="submit" value="Bearbeiten"/> <input type="button" name="submit" value="Entfernen"/></p>   
</form> 

Ich gebe ja damit an, dass er als Actionscript "../php/stamm-herst.php" verwenden soll.

Hab das ganze jetzt auch auf input typ="submit" und einen anderen Namen für die Buttons genommen. Jetzt bekomm ich allerdings nur eine weiße Seite wenn ich einen Button anklick...

Hab scheinbar noch einiges zu lernen in diesem Bereich face-smile
dog
dog 16.04.2013 um 10:27:41 Uhr
Goto Top
Jetzt bekomm ich allerdings nur eine weiße Seite

Dann schalt PHPs Error Reporting ein.
Während der Entwicklung (und nur dann) gehört immer zuerst in ein Script:
<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors','On');  
?>

(Bei Syntaxfehlern hilft das aber auch nix mehr).
nxclass
nxclass 16.04.2013 aktualisiert um 13:49:12 Uhr
Goto Top
... dann gleich noch ein:
var_dump($_POST);
var_dump($_REQUEST);
anhängen - um zu erkennen was vom PHP Skript empfangen wird.
Cocktailz82
Cocktailz82 16.04.2013 um 17:08:28 Uhr
Goto Top
Hi.

Super. Danke schön!!

Endlich erfahr ich mal wie man ein wenig debuggen kann. Damit hab ich nämlich noch das größte Problem. Ich weiß einfach nicht was reingeht und was rauskommt.

Vielen Dank. Ich versuch mich dann mal hier durchwurschteln face-smile