Problem mit dem Absenden einer Form aufgrund von JS-Code

Tservarius

Mitglied
Halödri!
Habe folgendes nettes PHP-Script.. (siehe Schluss)
Das Problem an dem Script:

Diese Zeile:
echo ("<select size=\"1\" name=\"spaltenaustabelle\" onChange=\"document.postingform.submit()\">");

Problem:
Nehme ich diese Zeile raus so lässt sich das Formular wunderbar absenden, wenn auf die Absenden schaltfläche gedrückt wird und die Seite wo es eigentlich wirken soll wird aufgerufen.

Lass ich die Zeile jedoch drinne, funktioniert zwar das automatische Aufrufen der Seite wunderbar, jedoch lässt sich das Formular nicht mehr per Schaltfläche absenden :-(

Lösungsvorschläge ?
Bin über jede hilfe dankbar!



############
Das Script:
############

<?php

//////////////////////////////////////////////////////////
// Öffnen der Datenbankverbindung für Dynamische Inhalte
include("dbconnect.inc");
//////////////////////////////////////////////////////////

echo ("
<form name=\"postingform\" method=\"POST\" action=\"index.php\">
<div align=\"left\">

<table border=\"0\" width=\"461\" cellspacing=\"0\" cellpadding=\"0\" id=\"table1\">
<tr>
<td width=\"177\"><font face=\"Verdana\" size=\"2\">Tabelle hinzufügen</font></td>
<td><input type=\"text\" name=\"tabellehinzu\" size=\"20\"></td>
</tr>");

// Start: Ausgabe der Tabellen aus der Datenbank und die Übergabe ins Optionsfeld beendet

echo("
<tr>
<td width=\"177\"><font face=\"Verdana\" size=\"2\">Tabelle löschen:</font></td>
<td>");

$result = mysql_list_tables($sqldb);

echo ("<select size=\"1\" name=\"tabelleloeschen\">");
echo ("<option selected value=\"\">Keine Tabelle löschen</option>");

while ($row = mysql_fetch_row($result)) {
echo "<option value=\"$row[0]\">$row[0]</option>\n<br>";
}
mysql_free_result($result);
echo ("</select></td>
</tr>");

// Ende: Ausgabe der Tabellen aus der Datenbank und die Übergabe ins Optionsfeld beendet

// Start: Ausgabe der Tabellen aus der Datenbank und die Übergabe ins Optionsfeld beendet

echo("
<tr>
<td width=\"177\"><font face=\"Verdana\" size=\"2\">Spalten aus folgender Tabelle wählen:</font></td>
<td>");

echo ("<select size=\"1\" name=\"spaltenaustabelle\" onChange=\"document.postingform.submit()\">");
echo ("<option selected value=\"\">Keine Tabelle löschen</option>");
echo ("<option value=\"$spaltenaustabelle\">$spaltenaustabelle</option>");
$result = mysql_list_tables($sqldb);

while ($row = mysql_fetch_row($result)) {
echo "<option value=\"$row[0]\">$row[0]</option>\n<br>";
}
mysql_free_result($result);
echo ("</select></td>
</tr>");

// Ende: Ausgabe der Tabellen aus der Datenbank und die Übergabe ins Optionsfeld beendet


// Start: Ausgabe der Spalten aus der ausgewählten Tabelle und die Übergabe ins Optionsfeld beendet

echo("
<tr>
<td width=\"177\"><font face=\"Verdana\" size=\"2\">Spalten:</font></td>
<td>");

$sqlquerry_spaltenauslesen = "SHOW COLUMNS FROM table $spaltenaustabelle";
$result = mysql_query($sqlquerry_spaltenauslesen);

echo ("<select size=\"1\" name=\"spalte\">");
echo ("<option selected value=\"\">Keine Spalte verfügbar</option>");

while ($row = mysql_fetch_row($result)) {
echo "<option value=\"$row[0]\">$row[0]</option>\n<br>";
}
mysql_free_result($result);
echo ("</select></td>
</tr>");

// Ende: Ausgabe der Spalten aus der ausgewählten Tabelle und die Übergabe ins Optionsfeld beendet

echo("
</table>
</div>
<p>
<input type=\"submit\" value=\"Änderungen übernehmen\" name=\"make_adddbstuff\"></p>
</form>");

//////////////////////////////////////////////////////////
// Schließen der Datenbankverbindung für Dynamische Inhalte
dbclose();
//////////////////////////////////////////////////////////
?>


#################################################
Die Variablen in der Form werden an diese Seite übergeben:
index.php
#################################################
<?php
include("head.inc");

if (isset($action_adddbstuff)) {
include("action_adddbstuff.php");

} elseif (isset($spaltenaustabelle)) {
include("action_adddbstuff.php");

} elseif (isset($make_adddbstuff)) {
include("make_adddbstuff.php");

} elseif (isset($action_eingabe)) {
include("action_eingabe.php");

} elseif (isset($action_abfrage)) {
include("action_abfrage.php");
}
?>
 
Dass es an dieser Zeile liegen soll, kann ich mir nicht vorstellen....da ist nix zu sehen, was dies verursachen könnte(wenn das wirklich alles ist).

Übrigens ist im Javascript-Forum PHP-Code überflüssig und kontraproduktiv.
Da Javascript im Browser läuft, probiere bitte, das zu posten, was dein Browser zur Verfügung hat...den HTML-Quelltext der Seite.

Weiterhin verbessert die Benutzung der [ code ]-Tags die Lesbarkeit von Code in Beiträgen ungemein ;)
 
Ich denke dann einfach mal das es an dieser Zeile liegen wird:
Code:
onChange=\"document.postingform.submit()\">");
Das document Attribut funktioniert nur auf 2 Wege. Entweder gibst du eine komplette Referenz über die vorhandenen XHTML Objekte über document.all.[object] wieder oder du nimmst document.getElementById(object]).

Ich Empfehle, wenn die Seite Cross Browserfähig sein soll, die document.getElementById Methode, da diese sowohl auf Mozilla, Gecko also auch MSIE Browsern läuft.

Versuche nun anstatt:
Code:
onChange=\"document.postingform.submit()\">"); //...lieber dieses
onChange=\"document.all.postingform.submit()\">"); //...oder
onChange=\"document.getElementById('postingform').submit()\">");

In diesem Sinne
 

Neue Beiträge

Zurück