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-Key: 204924

Url: https://administrator.de/contentid/204924

Printed on: April 23, 2024 at 08:04 o'clock

Member: nxclass
nxclass Apr 12, 2013 updated at 21:26:32 (UTC)
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.
Member: Cocktailz82
Cocktailz82 Apr 13, 2013 at 10:38:54 (UTC)
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.
Member: dog
dog Apr 13, 2013 at 12:52:52 (UTC)
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
Member: Arano
Arano Apr 13, 2013 at 12:58:49 (UTC)
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
Member: Cocktailz82
Cocktailz82 Apr 16, 2013 at 07:58:18 (UTC)
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
Member: dog
dog Apr 16, 2013 at 08:27:41 (UTC)
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).
Member: nxclass
nxclass Apr 16, 2013 updated at 11:49:12 (UTC)
Goto Top
... dann gleich noch ein:
var_dump($_POST);
var_dump($_REQUEST);
anhängen - um zu erkennen was vom PHP Skript empfangen wird.
Member: Cocktailz82
Cocktailz82 Apr 16, 2013 at 15:08:28 (UTC)
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