PHP Funktion über Formular aufrufen (onSubmit)

Voltex

Mitglied
Hallo Community,
ich bitte um Mithilfe bei einem Problem, für welches ich im Moment keine Lösung habe. Es geht darum, dass ich über ein Formular bei dem Klick auf den Submit Button (sprich onSubmit) eine Funktion aufrufen möchte, welche die Daten dann via UPDATE in die Datenbank übernimmt. Im Moment sieht das ganze so aus:

PHP:
 <form name="profile" action="profilectrl.php" method="post" onsubmit="return update()">
            <table  width="100%" border="0"  cellpadding="0" cellspacing="2">
              <tr> 
                <td width="110">Vorname:</td>  <td> 
                  <input type="text" name="prenom" value="<?php echo $value['prenom']; ?>" class="profile" /></td>
              </tr>

[...]

<center> 
                <input type="reset" name="reset" value="" class="resetbt">
                <input type="submit" name="registerbt" value="" class="regbt" />
            </center>
          </form>

<?php
/***FUNKTION ZUM SCHREIBEN IN DIE DATENBANK***/
 
if(isset($_POST['submit']))
{
    function update()
    {
      $updateprofile = "UPDATE `tbl_usr_ext` 
                      SET
                      `prenom` = '".mysql_real_escape_string($_POST['prenom'])."'
                      WHERE
                      `username`
                      LIKE
                      '".$_SESSION['securityManager']->getUsername()."'"; 
                      
      mysql_query($updateprofile, $link);
                  
    } 
}
?>


Wie Ihr sicherlich seht fehlen einige Angaben/Anweisungen/Befehle um die Funktion aufzurufen. Das liegt daran, dass ichmir dabei nciht sicher bin bzw. keine Idee habe, wie man das macht.
Ich möchte den SQL Query nicht so gerne in eine neue Datei schreiben, da die Anzahl an Dateien schon ziemlich hoch ist.

Ich hoffe Ihr versteht, was ich meine und könnt mir helfen.

lg,
Voltex
 
Versuchst du mit
PHP:
<form name="profile" action="profilectrl.php" method="post" onsubmit="return update()">
Die PHP-Funktion anzusprechen oder hast du noch eine JavaScript-Funktion mit dem diesem Namen?
Nur um eventuelle Missverständnisse vorzubeugen. :)
 
Ursprünglich hatte ich vor, das Formular nochmal über eine JS Funktion zu überprüfen auf korrekte Angaben. Diese hab ich jetzt aber rausgenommen. Also es ist keine JS Funktion vorhanden, die den gleichen namen hat ;)
 
auf diese weise kannst du keine php funktion aufrufen.

javascript kann phpcode nicht ansteuern

PHP:
<?php
function update()
{
  $updateprofile = "UPDATE `tbl_usr_ext` 
                      SET
                      `prenom` = '".mysql_real_escape_string($_POST['prenom'])."'
                      WHERE
                      `username`
                      LIKE
                      '".$_SESSION['securityManager']->getUsername()."'"; 
                      
      mysql_query($updateprofile, $link);
                  
} 
if(isset($_POST['submit']))
{
  update();
}

aber nebenbei.. wo wäre für dich der sinn für onsubmit=""
 
Ich dachte, das würde mit onSubmit funktiunieren. Nunja, werds direkt mal mit deiner Lösung austesten. Vielen dank schonmal
 
javascript läuft beim client, php auf dem server.

was du machen kannst ist mit php eine javascript variable füllen
Code:
<script type="text/javascript">
var variable = "<?php echo 'Hallo'; ?>";
</script>
umgekehrt wird das dagegen nix.
 
Das JS habe ich bereits ausgeschlossen. kommt also nichtmehr zum einsatz. Zumindest nciht bei diesem Problem, es sei denn es gibt tatsächlich keine andere Lösung.

Ich habs vorhin mal mit der vorgeschlagenen Lösung getestet. Leider werden die daten nciht in die Datenbank übernommen.

So siehts aus:

PHP:
 <form name="profile" action="profilectrl.php" method="post">
            <table  width="100%" border="0"  cellpadding="0" cellspacing="2">
              <tr> 
                <td width="110">Vorname:</td>  <td> 
                  <input type="text" name="prenom" value="<?php echo $value['prenom']; ?>" class="profile" /></td>
              </tr>

[...]

<center> 
                <input type="reset" name="reset" value="" class="resetbt">
                <input type="submit" name="registerbt" value="" class="regbt" />
            </center>
          </form>


<?php 
function update() 
{ 
  $updateprofile = "UPDATE `tbl_usr_ext`  
                      SET 
                      `prenom` = '".mysql_real_escape_string($_POST['prenom'])."' 
                      WHERE 
                      `username` 
                      LIKE 
                      '".$_SESSION['securityManager']->getUsername()."'";  
                       
      mysql_query($updateprofile, $link); 
                   
}  
if(isset($_POST['submit'])) 
{ 
  update(); 
}
?>

Wie gesagt irgend etwas klappt da noch nciht so ganz. Hoffe wir finden die Lösung
 
Moin,

Ich habs vorhin mal mit der vorgeschlagenen Lösung getestet. Leider werden die daten nciht in die Datenbank übernommen.


[......]

Code:
if(isset($_POST['submit']))
Der Button heisst registerbt ;)

Weiterhin: Du verwendest in der Funktion die Variable $link als Verbindungskennung, wo kommt diese her? Ist eine Datenbankverbindung überhaupt vorhanden...aus dem Code ist das nicht ersichtlich.
 
Hallo,
die Variable $link ist in einer externen datei definiert, die ich includiert hab. DB-Verbindung ist vorhanden. Werds mal kurz testen mit dem anderem Buttonnamen :P

Öhm, okay, tschuldigt bitte, es scheint wohl doch keine DB-Verbindung vorhanden zu sein. hab mir mal mysql_error() ausgeben lassen. Ergebnis:

Access denied for user 'ODBC'@'localhost' (using password: NO)

seltsamerweise hab ich den benutzer "ODBC" nirgends in meinem gesamten cript angegeben. Der Existiert soweit ich weis auch garnciht...
 
Zuletzt bearbeitet:
Zurück