• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Hilfe benötigt bei einem Projekt

kwwuser

New member
Wir haben nicht die Zeit uns in die Basis von Javascript und Jquery einzuarbeiten und bräuchten bei einem Projekt Unterstützung.

Haben es mal auf unseren Server hochgeladen.

Drag and Drop Interaction Ideas | Page Scale

Das wäre für uns genau das richtige Script -

Folgendes sollte möglich sein .
Abgelegte Objekte (Images) zusammen führen in ein Array (JS).
Array auslesen und in PHP Variablen ($_POST/GET) übergeben.

Ich denke das ist keine große Sache. Bekomme es aber nicht hin.:mad:


Hoffe ich bekomme eine Antwort -
grüße
Walter
 
Zunächst mal danke für den Link, genau sowas suche ich gerade (bzw wollte ich noch suchen) :D

Dann noch die Frage, sind die Objekte bereits vorher auf dem Server, oder werden Sie vom User hochgeladen?
Wenn Sie beraits auf dem Server liegen würde ich die Links in ein JSON-Objektarray unterbringen und dieses dann per GET oder POSt übergeben...

Code:
var imagearray=[
{
"bildname":"Sonne",
"bildaddresse":"/pfad/img/sonne.png",
"bildsyle":{}
},
{
"bildname":"Mond",
"bildaddresse":"/pfad/img/mond.png",
"bildsyle":{"color":"black"}
}
];
 
Hi danke
Die Images werden dann aufm Server liegen.
Pfad werde ich dann anpassen .

wenn die 4 Felder ausgefüllt sind sollte die übergebenen Daten ausm Array einzeln per POST / GET übergeben werden.

grüße
GERRY
 
Wie sieht den das Formular aus? (Kristallkugel ist mal wieder kaputt :p :rolleyes:
Was sind das für vier Felder, wird ein Bild oder alle Bilder bearbeitet?

Wie hast du vor die Datenanbindung zu machen? Als Vorschlag falls du da nichts hast würde ich angularjs vorschlagen...

http://forum.jswelt.de/tutorials-javascript/61659-einf-hrung-angularjs.html

Ach ja ... heißte nun Gerry oder Walter :p

Code:
var stringfotodata=JSON.stringify(imagearray),req = {
 method: 'POST',
 url: 'http://example.com/php/serv.php',
 headers: {
   'Content-Type': 'JSON'
 },
 data: { 'fotodata':  stringfotodata}
}

$http(req).then(function(){...}, function(){...});
PHP:
$json=$_POST['fotodata'];
$obj = json_decode($json);
 
Zuletzt bearbeitet:
Danke

Vorname : Gerry

Code:
var stringfotodata=JSON.stringify(imagearray),req = {
 method: 'POST',
 url: 'http://example.com/php/serv.php',
 headers: {
   'Content-Type': 'JSON'
 },
 data: { 'fotodata':  stringfotodata}
}

$http(req).then(function(){...}, function(){...});
Ok teilweise verstehe ich den Code - Imagearray wird per JSON als variable stringfotodata an http://example.com/php/serv.php übergeben - in der serv.php
Code:
$json=$_POST['fotodata'];
$obj = json_decode($json);
und ist im PHP als Array $obj decodiert.
Code:
RICHTIG ??
_______________

$http(req).then(function(){...}, function(){...});
Versteh ich nicht ganz !! -

http://forum.jswelt.de/tutorials-jav...angularjs.html - ja sieht ganz gut aus danke
versteh ich aber auch noch nicht genau ! sorry bloody Anfänger
 
Vorname ist Gerry

Also vielen Dank für die code snippets
Hab ich zum Teil verstanden

Also Bilder werden in Imagearray abgespeichert -
Die Übergabe erfolgt mit JSON an Serv.php

Code:
var stringfotodata=JSON.stringify(imagearray),req = {
 method: 'POST',
 url: 'http://example.com/php/serv.php',
 headers: {
   'Content-Type': 'JSON'
 },
 data: { 'fotodata':  stringfotodata}
}

$http(req).then(function(){...}, function(){...});

abgerufen mit
Code:
$json=$_POST['fotodata'];
$obj = json_decode($json);

ist dann im Array $obj vorhanden in der Serv.php -

Anbindung mit angularjs

--

Das Kontakformular erstelle ich dann noch - Schwerpunkt ist - per drag and Drop images abzulegen auf den vier feldern. auszuwerten was abgelegt wurde und wert übergabe ob nur 1,2,3 oder oder alle felder ausgewählt sind per submit oder onclick inkl Value auch mit an das php script übergeben werden.
 
Arbeitend mit angular:
schieb das imagearray in den controller:
Code:
var x = (function() {
    "use strict";
    var app = angular.module('TutorialAnwendung', []);
    app.controller('TutorialController', ['$scope',
        function($scope){
		var imagecontroller=this;
                imagecontroller.imagearray=[{...}];
                imagecontroller.dropzone=[{"id":-1},{"id":-1},{"id":-1},{"id":-1}];//Anzahl gleich imagearray
                imagecontroller.send =function(){
                var result=[];
                //ID's in dropzone sind nun entweder -1, oder der index vom imagearray, die Reihenfole ist der gewählten gleich
                //For-each ... 
                angular.forEach(imagecontroller.dropzone, function(value) {
                        //if not -1
                        result.push(obj);
                    }, result);
                }
}]);
});
HTML:
<html ng-app="appname">
<head>...
		<script src="js/draggabilly.pkgd.min.js"></script>
		<script src="js/dragdrop.js"></script>
<script>
			(function() {
				var body = document.body,
					dropArea = document.getElementById( 'drop-area' ),
					droppableArr = [], dropAreaTimeout;

				// initialize droppables
				[].slice.call( document.querySelectorAll( '#drop-area .drop-area__item' )).forEach( function( el ) {
					droppableArr.push( new Droppable( el, {
						onDrop : function( instance, draggableEl ) {
							// show checkmark inside the droppabe element
							classie.add( instance.el, 'drop-feedback' );
                                                        var input=document.getElementById( instance.el.id).getElementsByTagName('input')[0];
                                                        input.value=instance.el.id;
							clearTimeout( instance.checkmarkTimeout );
							instance.checkmarkTimeout = setTimeout( function() { 
								classie.remove( instance.el, 'drop-feedback' );
							}, 800 );
							// ...
						}
					} ) );
				} );

				// initialize draggable(s)
				[].slice.call(document.querySelectorAll( '#grid .grid__item' )).forEach( function( el ) {
					new Draggable( el, droppableArr, {
						draggabilly : { containment: document.body },
						helper : true,
						onStart : function() {
							// add class 'drag-active' to body
							classie.add( body, 'drag-active' );
							// clear timeout: dropAreaTimeout (toggle drop area)
							clearTimeout( dropAreaTimeout );
							// show dropArea
							classie.add( dropArea, 'show' );
						},
						onEnd : function( wasDropped ) {
							var afterDropFn = function() {
								// hide dropArea
								classie.remove( dropArea, 'show' );
								// remove class 'drag-active' from body
								classie.remove( body, 'drag-active' );
							};

							if( !wasDropped ) {
								afterDropFn();
							}
							else {
								// after some time hide drop area and remove class 'drag-active' from body
								clearTimeout( dropAreaTimeout );
								dropAreaTimeout = setTimeout( afterDropFn, 400 );
							}
						}
					} );
				} );
			})();
		</script></head>
<body ng-controller="TutorialController as ImageCtrl">
<div id="grid" class="grid clearfix">
<div class="grid__item" style="position: relative;" ng-repeat="image in ImageCtrl.imagearray" id="{{$index}}>
<img src="{{image.bildaddresse}}" alt="{{image.bildname}}" style="{{image.bildsyle}}" />
</div>
</div>
<div id="drop-area" class="drop-area">
<div>
<div class="drop-area__item">
<div>
<div class="drop-area__item" ng-repeat="dropitem in ImageCtrl.dropzone" id="{{$index}}"><div><div class="dummy"><input type="hidden" ng-model="dropitem.id"/></div></div></div>
			</div>
		</div>
<button type="button" ng-click="ImageCtrl.send()">Click Me!</button>
		<div class="drop-overlay"></div>
		
</body>
</html>

Hier dann (von deinem Link) die Quellen downloaden.

Zur erklärung ng-repeat erstellt immer gleiche html tags und geht dabei jedes Element einer Liste durch. $index ist der index der gerade durchlaufenden tabelle.

Falls du noch mehr fragen hast frag einfach ;) Habe den Code jetzt nicht getestet, sondern nur schnell zusammen geschrieben, könnte n paar Kinderkrankheiten haben, diese sollten aber mit Basiswissen JS lösbar sein
 
Hi habs mal was gebastelt.
Code:
<html ng-app="appname">
<head>

		<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>
		<link rel="stylesheet" type="text/css" href="css/normalize.css" />
		<link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.2.0/css/font-awesome.min.css" />
		<link rel="stylesheet" type="text/css" href="css/demo.css" />
		<link rel="stylesheet" type="text/css" href="css/page-scale.css" />
		<script src="js/modernizr.custom.js"></script>
		
		
		
		<script>

var imagearray=[
{
"bildname":"Frau",
"bildaddresse":"comicfrau1.png",
"bildsyle":{}
},
{
"bildname":"Mann",
"bildaddresse":"comicmann1.png",
"bildsyle":{"color":"black"}
}
];
var stringfotodata=JSON.stringify(imagearray),req = {
 method: 'POST',
 url: 'http://example.com/php/serv.php',
 headers: {
   'Content-Type': 'JSON'
 },
 data: { 'fotodata':  stringfotodata}
}

$http(req).then(function(){...}, function(){...});

var x = (function() {
    "use strict";
    var app = angular.module('TutorialAnwendung', []);
    app.controller('TutorialController', ['$scope',
        function($scope){
		var imagecontroller=this;
                imagecontroller.imagearray=[{...}];
                imagecontroller.dropzone=[{"id":-1},{"id":-1}];//Anzahl gleich imagearray
                imagecontroller.send =function(){
                var result=[];
                //ID's in dropzone sind nun entweder -1, oder der index vom imagearray, die Reihenfole ist der gewählten gleich
                //For-each ... 
                angular.forEach(imagecontroller.dropzone, function(value) {
                        //if not -1
                        result.push(obj);
                    }, result);
                }
}]);
});

</script>

		
</head>

<div class="content"></div>
<body ng-controller="TutorialController as ImageCtrl">
<div id="grid" class="grid clearfix">
<div class="grid__item" style="position: relative;" ng-repeat="image in ImageCtrl.imagearray" id="{{$index}}>
<img src="{{image.bildaddresse}}" alt="{{image.bildname}}" style="{{image.bildsyle}}" />
</div>
<div class="grid__item" style="position: relative;" ng-repeat="image in ImageCtrl.imagearray" id="{{$index}}>
<img src="{{image.bildaddresse}}" alt="{{image.bildname}}" style="{{image.bildsyle}}" />
</div>

</div>
<div id="drop-area" class="drop-area">
<div>
<div class="drop-area__item">
<div>
<div class="drop-area__item" ng-repeat="dropitem in ImageCtrl.dropzone" id="{{$index}}"><div><div class="dummy"><input type="hidden" ng-model="dropitem.id"/></div></div></div>
<div class="drop-area__item" ng-repeat="dropitem in ImageCtrl.dropzone" id="{{$index}}"><div><div class="dummy"><input type="hidden" ng-model="dropitem.id"/></div></div></div>
			</div>
		</div>
<button type="button" ng-click="ImageCtrl.send()">Click Me!</button>
		<div class="drop-overlay"></div>
</div>	
	</div>	
</div>
		<script src="js/draggabilly.pkgd.min.js"></script>
		<script src="js/dragdrop.js"></script>
		<script>
			(function() {
				var body = document.body,
					dropArea = document.getElementById( 'drop-area' ),
					droppableArr = [], dropAreaTimeout;

				// initialize droppables
				[].slice.call( document.querySelectorAll( '#drop-area .drop-area__item' )).forEach( function( el ) {
					droppableArr.push( new Droppable( el, {
						onDrop : function( instance, draggableEl ) {
							// show checkmark inside the droppabe element
							classie.add( instance.el, 'drop-feedback' );
                                                        var input=document.getElementById( instance.el.id).getElementsByTagName('input')[0];
                                                        input.value=instance.el.id;
							clearTimeout( instance.checkmarkTimeout );
							instance.checkmarkTimeout = setTimeout( function() { 
								classie.remove( instance.el, 'drop-feedback' );
							}, 800 );
							// ...
						}
					} ) );
				} );

				// initialize draggable(s)
				[].slice.call(document.querySelectorAll( '#grid .grid__item' )).forEach( function( el ) {
					new Draggable( el, droppableArr, {
						draggabilly : { containment: document.body },
						helper : true,
						onStart : function() {
							// add class 'drag-active' to body
							classie.add( body, 'drag-active' );
							// clear timeout: dropAreaTimeout (toggle drop area)
							clearTimeout( dropAreaTimeout );
							// show dropArea
							classie.add( dropArea, 'show' );
						},
						onEnd : function( wasDropped ) {
							var afterDropFn = function() {
								// hide dropArea
								classie.remove( dropArea, 'show' );
								// remove class 'drag-active' from body
								classie.remove( body, 'drag-active' );
							};

							if( !wasDropped ) {
								afterDropFn();
							}
							else {
								// after some time hide drop area and remove class 'drag-active' from body
								clearTimeout( dropAreaTimeout );
								dropAreaTimeout = setTimeout( afterDropFn, 400 );
							}
						}
					} );
				} );
			})();
		</script>		
</body>
</html>

http://www.wasserenthaertungsanlage-kabinett.de/haerte/ueben/test.html

vielen Dank vielen Dank - sind ja schon fast soweit wie ich mir das vorgestellt habe .
1. warum zeigt er mir die images nicht an
2. drag objekte lassen sich nur in einer Ebene bewegen ??
3. beim wieder rausziehen bleiben duplicate übrig
4. nach dem ablegen des Images schaltet er nicht auf auswahl zurück

zur variablen übergabe bin ich noch gar nicht gekommen.
 
Hab mal die Konsole geöffnet: ... ist n Platzhalter :p :D und kein valider js-code.
Code:
var x = (function() {
    "use strict";
    var app = angular.module('TutorialAnwendung', []);
    app.controller('TutorialController', ['$scope',
        function($scope) {
            var imagecontroller = this;
            imagecontroller.imagearray = imagearray = [{
                "bildname": "Frau",
                "bildaddresse": "comicfrau1.png",
                "bildsyle": {}
            }, {
                "bildname": "Mann",
                "bildaddresse": "comicmann1.png",
                "bildsyle": {
                    "color": "black"
                }
            }];
            imagecontroller.dropzone = [{
                "id": -1
            }, {
                "id": -1
            }]; //Anzahl gleich imagearray
            imagecontroller.send = function() {
                var result = [];
                //ID's in dropzone sind nun entweder -1, oder der index vom imagearray, die Reihenfole ist der gewählten gleich
                //For-each ... 
                angular.forEach(imagecontroller.dropzone, function(value) {
                    //if not -1
                    result.push(obj);
                }, result);
                /*
                var stringfotodata = JSON.stringify(imagearray),
                    req = {
                        method: 'POST',
                        url: 'http://example.com/php/serv.php',
                        headers: {
                            'Content-Type': 'JSON'
                        },
                        data: {
                            'fotodata': stringfotodata
                        }
                    }

                $http(req).then(function() {...
                }, function() {...
                });*/
            }
        }
    ]);
});
 
Zurück
Oben