Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 13:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



jQuery UI - Einfacher Dynamischer Content

Discussion on jQuery UI - Einfacher Dynamischer Content within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1

 
Ravenstorm's Avatar
 
elite*gold: 0
The Black Market: 100/0/0
Join Date: Jan 2010
Posts: 13,150
Received Thanks: 3,207
Post jQuery UI - Einfacher Dynamischer Content

Hallo und herzlich willkommen zu meinem ersten Guide.
Ich habe bisher leider wenig über jQuery/jQuery UI in diesem Forum gesehen, allerdings finde ich da sollte man mal Abhilfe schaffen.
Problematisch ist nur, dass ich wirklich extrem schlecht im erklären bin und somit das wohl nicht allzu gut werden wir. Ich gehe mal davon aus, das der Lesen wenigstens ein bisschen Ahnung von PHP/JS hat.

index.php

Wir starten mit einem einfachem PHP-Script welches uns etwas anzeigt und fügen dort ein Button ein.

PHP Code:
<button id='ZeilenAbfragen'>Zeilen abfragen.</button
Nun fügen wir einen ganz normalen HTML-Code an indem später unsere DB-Rows angezeigt werden sollen. In diesem Fall ist es ein DIV-Container welcher den Dialog darstellen soll mit einem kleinem Tooltipp und einer derzeit noch leeren Tabelle, welche später mit den Daten gefüllt werden soll.

PHP Code:
<div id="dialog-show" title="DB-Rows">
    <
class="validateTips"></p>
    <
form>
        <
class="info">SelektierenKlickMehrere Stundenzettel-Zeilen selektierenStrg+Klickoder Rahmen mit Maus ziehen.</p>
        <
table id="selectable-table">
        </
table>
    </
form>
</
div
Nicht zu vergessen der Aufruf der jQuery Funktion welche wir letztendlich benutzen werden.

PHP Code:
<scripttype="text/javascript" src="jquery.js">
jQuery(document).ready(function($) {
  
getList();
});
</script> 
In der index.php werden wir nun 2 Seiten includieren welche wir gleich noch erstellen werden das ist zunächst die action.php (Ajax Request) und die ausgelagerten Javascript Funktionen in der getList.js.

getList.js


PHP Code:
function getList () {

        
//Definierung des Dialogs. Vergebung der Eigenschaften und hinzufügen von 2 Buttons welche in diesem Fall beide schließen sollen, optional noch Speicherungsprozess hinzufügbar.
    
$( "#dialog-show" ).dialog({
        
autoOpenfalse,
        
height600,
        
width600,
        
modaltrue,
        
buttons: [
            {
                
id"btSchließen",
                
text"Schließen",
                
click: function() {
                    $(
this).dialog("close");
                }
            },
            {
                
id"btDetailsAbbrechen",
                
text"Abbrechen",
                
click: function() {
                    $( 
this ).dialog"close" );
                }
            }
        ],
                
//Bei der Öffnung soll der Dialog erst einmal initialisiert werden und das mit leeren Daten.
        
open: function() {
            $(
".info").hide();
            $( 
"#selectable-table" ).html("");
        },

        
close: function() {
        }
    });

    
// Dieser Button im Stundenzettel öffnet den Dialog
    
$( "#ZeilenAbfragen" )
        .
button()
        .
click(function() {
                        
//Wenn auf dem Button geklickt worden ist soll sich der Dialog öffnen und der Prozess zur Ladung der Daten starten.
            
$( "#dialog-show" ).dialog"open" );
            
showAllDataRows();
        });

    
//Zeigt alle Datensätze
    
function showAllDataRows(){

                
//Initialisierung
        
$( "#selectable-table" ).html('');
        
updateTips("Lade Zeilen...");

        
//Datensammlung
        
var oData = {
            
action"getData",
            
name"ravenstorm"
        
};

        
//Abfrage der Daten
        
var request = $.ajax({
                
url"uploads/action.php",
                
asyncfalse,
                
type"POST",           
                
dataType"json",
                
data: {dataoData}
            });

        
//Request erfolgreich?...
        
request.done(function(ret) {
            
            
updateTips("Alle Daten-Zeilen:");
            $(
".info").show();
            var 
sline;

            
//... für jede Zeile einen Tabelleneintrag erstellen...
            
for (var 0ret.data.length i++ )    {
                
line ret.data[i];
                
// ... ProjektNr + Name anzeigen ...
                
"<td>" line[2] + "</td><td>" line[3] + "</td>";
                $( 
"#selectable-table" ).append("<tr class='ui-widget-content'>" "</tr>");
            }
            
//... und das ganze zum jQueryUI Objekt machen...
            
$( "#selectable-table" ).selectable( {filter:"tbody tr"} );
        });

            
// Falls der Request Fail läuft wissen wir zumindestens warum :)
            
request.fail(function(jqXHRtextStatus) {
                
alert"callAction: Request fehlgeschlagen: " textStatus );
            });
    }



Bitte lest die Kommentare selbständig und sorgfältig durch um die einzelnen Schritte genau erklärt zu bekommen.

action.php


PHP Code:
<?php 

    
public function getMyList() {

        
$msg "";

        
$data $_POST['data'];
        
$action $data["action"];

        
//--- Datenbank-Aktionen ---

        
if ($action == "getData") {

                        
//Hier könnt ihr nun eure Daten einfügen per odbc/sql oder statisch
                        //Ich gehe nun mal davon aus ich habe ein Array aus meiner DB bekommen
                        
$returnData;
                        
            
// Associative array für Rückgabe an Javascript
            
$ret = array('msg' => $msg'data' => $retDat);
                }
         }
     echo 
$ret;

?>
Optional


Um im Nachhinein auch zu sehen welche Elemente selektiert sind verändern wir das Design im CSS ein wenig und bereiten eine CSS-Klasse vor.

Code:
/* Farben für "während selektieren" und "selektiert" */
#selectable-table .ui-selecting { background: #FECA40; }
#selectable-table .ui-selected  { background: #F39814; color: white; }
Wenn ihr etwas nicht verstanden habt oder ich es unzureichend erklärt habe könnt ihr gerne etwas dazu schreiben. Ich kann nicht so gut erklären weshalb ich auch glaube, dass das Tutorial nicht so gut ausgefallen ist. Allerdings hoffe ich das es euch wenigstens ein Grundverständnis mitgegeben hat.
Ravenstorm is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Suche] Internet Provider mit Dynamischer IP
04/20/2012 - Technical Support - 2 Replies
Hallo ePvP-Board Ich bin momentan bei Kabel Deutschland 100'000 KBits + Telefon Flat und möchte zu einem Provider wo ich meine IP-Adresse stündlich wechseln kann, da dies bei Kabel Deutschland nicht möglich ist (Feste IP). Mir reicht auch eine 16'000 Leitung mir ist nur Wichtig das ich meine IP oft wechseln kann. Habt ihr Tipps bei welchen Provider dies möglich ist? lg
Tinyproxy mit dynamischer IP
11/12/2010 - Technical Support - 3 Replies
Ich habe auf meinem Server tinyproxy laufen. Allerdings habe ich keine Lust, jedesmal, wenn sich meine IP ändert (jeden Tag!), die Configdatei anzupassen. Gibt es eine Möglichkeit, das zu umgehen? Vielen Dank im Vorraus, abba232
SF Dynamischer Banner
06/12/2010 - Browsergames - 2 Replies
Hi zusammen, ich suche einen Dynamischen Banner für Seafight... ausgelesen werden soll: Mein Spieler-Name aktuelle Gilde (incl. Posten, also OH, Br oder member) Spieler ID Pirat seit: xx.xx.xxxx
Dynamischer Socks Proxy für D2
06/02/2010 - Diablo 2 - 7 Replies
Hi! Ich weiß es gibt schon viele Threads dazu, aber ich hab ne andere Frage. Zur Zeit benutze ich 2 Bots auf 2 verschiedenen IPs. Leider ist eine von den IPs ne statische (danke kabeldeutschland) und wird somit leider ab und an gesperrt. Die andere ist eine dynamische IP und wird quasi immer schön resettet und läuft 24/7. Jetzt will ich darauf hinaus, dass ich nen weiteren Proxy haben will, welcher von der IP her auch dynamisch ist. Kennt jemand vielleicht einen Service wo man sich...



All times are GMT +2. The time now is 13:31.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.