kein POST und kein update möglich

Anacondi

Erfahrenes Mitglied
hallo. ich binde in meine seite eine 2. seite mit ein, die sich allein aktulisiert. Und zwar so:
Code:
 <script type="text/javascript">
      $(document).ready(function() {
        $("#refresh").load("refresh.php");
        var refreshId = setInterval(function() {
        $("#refresh").load('refresh.php?' + 1*new Date());
        }, 1000);
     });
</script>
//an die stelle wo anzeige hin soll kommt:
Code:
 <div id="refresh" style="text-align:center; background:#003300"></div>

in der refresh Seite habe ich einen Button.
Code:
<form method="POST">
        <input type="hidden" name="Los" value='1'>
         <input type="image" src="bilder/monopoli/becher.jpg" name="weiter">
          </form>
Der POST wird zur gleichen Seite geschickt.
Code:
 if ($_POST["Los"]==1)
   {
       $zahl1 = rand(1, 6);
       $zahl2 = rand(1, 6);
       $update = mysql_query("UPDATE monopoly Set zahl1 = '$zahl1', zahl2= '$zahl2', aufgabe = 1 WHERE id = '1'");
  }

Mache ich das ganze auf einer normalen php Seite funktioniert es, und die 2 Zahlen werden in die Datenbank geschrieben, aber wenn ich auf der refresh Seite den button drücke passiert nichts.
Könnt ihr mir einen Tip geben ?
 
Schritt 2:
Zahlen im SQL als Zahlen behandeln. Also weg mit den '
1 ist nicht gleich '1'.

Zum eigentlichen Problem. Meine Javascripterfahrung ist schon lange her. Aber solltest du nicht im Form-Tag noch ein Ziel angeben. Also die Angabe. dass die Eingabe an die PHP-Seite geschickt werden soll?
Oder wird das durch den Javascriptgrümpel erledigt?
 
@Yaslaw Zumindest in HTML5 ist action optional. HTML4 zwar im Standard nicht, aber in der Realität...
Kein bzw. ein leerer Wert bedeuten die selbe Url wie die Seite.
 
@Yaslaw da die Post-Methode auf der selben Seite durchgeführt wird, so nehme ich an, siehe "Der POST wird zur gleichen Seite geschickt", ist es nicht nötig einen "action"-Attribut hinzufügen.

Die Ursache des Problems liegt hier im Quellcode.
HTML:
<form method="POST">
        <input type="hidden" name="Los" value='1'>
         <input type="image" src="bilder/monopoli/becher.jpg" name="weiter">
          </form>

Ohne einen input vom Typ "submit" wird die Form nicht getriggert, ausgeschlossen ist ein "entern" auf einem Input, was hier ja Dank des hidden-Feldes auch nicht funktioniert.

Lösungstrategie, type="image" zur type="submit" austauschen und das Bild via CSS einblenden.

So in etwa:

HTML:
<style>
.meinbild{
  background:url('bilder/monopoli/becher.jpg');
  background-position:center center;
  background-repeat:no-repeat
}
</style>
<form method="POST">
        <input type="hidden" name="Los" value='1'>
         <input type="submit" class="meinbild" name="weiter">
          </form>

Achja, du sollstest die Hinweise von sheel zur Kenntnis nehmen, da die mysql_query Funktionen deprecated sind.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück