• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage jquery mobile Wischen (Seite neu laden) wie??

muecke

Mitglied
Hallo miteinander,

ich habe mein ersten versuche mit dem Wischen von Seiten und "jquery mobile" gemacht.

ich habe es hin bekommen das man die Seite nun wischen kann *Heppy*

Der Aufbau der Seite ist wie folgt.

index.php
- 1 - Datenbank Verbindung
- 2 - Schauen ob Formular Felder leer sind --> ja dann aus DB lesen
- 2.1 - Schauen ob Formulare abgesendet wurden --> wenn ja handeln.
- 3 - jquery mobile Version "jquery-1.9.1.min.js" &" jquery.mobile-1.3.0.min.js" Laden
- 4 - Die verschiedenen Seiten inkl. Formulare

Jetzt habe ich das Problem das wenn ich mein Formular versende die Seite nicht neu geladen wird, dadurch wird mein php Teil aber auch nicht neu ausgeführt dadurch kann ich nicht auf ein versendetes Formular reagieren.

Muss man die Formulare bei " jquery mobile" andes als sonst versenden?



HTML:
<div data-role="page" data-theme="d" id="account">

   <div data-role="header" data-theme="b" data-position="fixed">
     <h1>Account</h1>
   </div><!-- /header -->
  
   <div data-role="content">
     <!-- Schauen ob Code neu ausgefürt wurde -->
     <?php
     date_default_timezone_set("Europe/Berlin");
     $timestamp = time();
    
     $datum = date("d.m.Y",$timestamp);
     $uhrzeit = date("H:i:s",$timestamp);
     echo $datum," - ",$uhrzeit," Uhr";
     ?>
     <!-- Schauen ob Code neu ausgefürt wurde -->

     <form id="account_Form" action="index.php" method="post">
       <div data-role="fieldcontain">
    <label for="Name">name</label>
    <input type="text" name="name" id="Name" value="<?php echo $Name; ?>" data-mini="true" placeholder="name" required readonly />
    
    <button form="account_Form" type="submit" name="action" value="0" data-theme="b">Speichern</button>
       </div><!-- /fieldcontain -->
     </form><!-- /account_Form -->
    
   </div><!-- /content -->
  
   <div data-role="footer" data-position="fixed">  
    <div data-role="navbar" data-theme="c" data-iconpos="left">
    <ul data-iconpos="left">
       <li><a href="#home"  data-icon="home"  > Home</a>  </li>
       <li><a href="#account"  data-icon="gear" data-theme="c"> Account  </a>  </li>
    </ul>
    </div><!-- /navbar -->
   </div><!-- /footer -->

</div><!-- /page -->

ich habe mal nur ein Feld aus dem Formular über gelassen, soll nur dafür da sein damit man
sieht wie ich das Formular aufgebaut habe.

benötigt Ihr noch mehr Code?

Wie bekomme ich die Seite dazu das wenn ich ein Formular versende die Seite auch wirklich neu geladen wird?


Gruß Mücke


EDIT:

Das ist mein Kopf in der Datei
HTML:
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>E - Sprungbuch</title>
 
  <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
 
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
  <script src="js/swipe.js"></script>
   <style>
   th {
    border-bottom: 0px solid #d9d9d9;
    background: #d6d6d6;
   }
   
   tr:nth-child(even) {
    background: #f6f6f6;
   }
   </style>
</head>

<body>

das ist die js/swipe.js
Javascript:
//Variablen
var currentPage = 0;
var Seiten = new Array();

/*
 * Diese Funktion dient dazu, herauszufinden, an welcher Stelle sich der Besucher befindet, dazu
 * wird mit activePage die aktuelle ID der Seite ermittelt und dann mit dem Array verglichen
 */
function currentPageAnalyse() {
     var activePage = $.mobile.activePage[0].id;
     
     for(i = 0; i < Seiten.length; i++)
     {
       if(Seiten[i] == activePage) {
         currentPage = i;
         break;
       }
     }   
}

/*
 * Swipe-Effekt
 */
jQuery(document).ready(function() {
   var SeitenAnzahl = $("div[data-role=page]").size();
       
   for(var a = 1; a <= SeitenAnzahl; a++){
     Seiten.push($("div[data-role=page]").get(a-1).id);
   }
   
   $(document).on('pagebeforeshow', currentPageAnalyse);
   $(document).on('swipeleft', swipeLeft);
   $(document).on('swiperight', swipeRight);
   
   function swipeLeft(event) {
     if(currentPage + 1 < Seiten.length) {
       $.mobile.changePage('#' + Seiten[currentPage + 1], {transition: "flow"});   
     }
   }
   function swipeRight(event) {
     if(currentPage > 0) {
       $.mobile.changePage('#' + Seiten[currentPage - 1], {transition: "flow", reverse: true});   
     }
   }
   
});
 
Werbung:
Aus einem anderen Thread kann ich mich erinnern, dass JQM Formulare intensiv umarbeitet und u. U. auf Ajax umstellt. Genaueres weiß ich nicht darüber, Du musst in der Doku nachlesen. Meine Erfahrung ist, dass der Einsatz von JQM eine genaue Einarbeitung erfordert und "mal eben machen" leicht scheitert.
 
Ok, danke, dann muss ich da noch mal suchen.

Ich habe gerade mal eine Test Seite aufgebaut, Ohne die Seiten zum Wischen, jedoch mit dem vollständigen "JavaScript" Code, da funktioniert es.

Arrr... ich könnt gerade das teil aus dem Fenster Schissen, ...

Ich Schaue mal ob ich was in der Doku dazu finde.
 
Werbung:
Ich kenne dieses Swipe nicht, aber du sendest doch keinen HTML Submit sondern triggerst ein JavaScript Event, und demzufolge muss die Datenübergabe per AJAX Call innerhalb des Events geschehen.
 
??

ich habe doch ein Formular? und bei dem habe ich dich die method="post" ich dachte das das dann per HTML übertragen wird. oder nicht?


Denn ich möchte ja das Formular mit meinem php abfragen denn von JavaScript habe ich keinen Plan.
PHP kann ich wenigstens ein wenig.
 
Werbung:
ich habe doch ein Formular? und bei dem habe ich dich die method="post" ich dachte das das dann per HTML übertragen wird. oder nicht?
Wie ich schon schrieb, überarbeitet JQM Formulare intensiv und stellt sie auf AJAX um. Was das DOM betrifft, kannst Du dich leicht davon überzeugen, wenn Du es dir z. B. mit der HTML-Ansicht von Firebug ansiehst. Das bedeutet, sie funktionieren nicht mehr so, wie Du es von deiner Notation her erwarten würdest. Wenn Du in der Doku nachliest, findest Du jedoch einen Weg, wie man zumindest die Umstellung auf Ajax unterbinden kann.
 
Zurück
Oben