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

[FRAGE] JS divID per Drag u Drop in anderes Div und dann IDs auslesen

sry habe den Ausgabestring in der getDivRowInfo nicht checked.
Sollte nur zeigen dass du hier einen query-string zusammenbauen kannst.
das & leitet eine neue Variable ein da aber die variable bildinfo immer die selbe ist wird diese wahrscheinlich überschrieben

hier hab ich mal eine einfache Lösung : der String wird vom phpscript aufgeteilt so ist die anzahl nicht wichtig
und es gibt nur eine Variable .du kannst auch einen xmlString daraus machen oder ein json object das kann ich aber auch nicht so auf die schnelle ;)
HTML:
///Javascript Teil //////////////////////
function getDivRowInfo()
{
var dataString = '';
	for (var i = 0;i<dropzones.length;i++)
	{
		if(dropzones[i].dataset.info == '-'){continue;}
		//keine Variable nur den String zu splitten verketten 
		 dataString+= dropzones[i].dataset.info+'-+-'+dropzones[i].dataset.id+'#';
	}
	return dataString;
}
function sendHome()//
{
var sendStr = getDivRowInfo();
//Überprüfen ob ein Bild abgelegt wurde
if(sendStr == ''){ alert('es wurde kein Bild abgelegt!');return; } //wenn nein dann Hinweis ausgeben

var data = new FormData();//für IE erst ab IE 10 
data.append('bildinfo',sendStr);
var xhtp = new XMLHttpRequest();
xhtp.open('post','datbac.php',true);
xhtp.addEventListener('load',datbac,false);
xhtp.send(data);
}
function datbac(e)
{
var income = document.createElement('div');
income.innerHTML = e.target.responseText;
document.body.appendChild(income);
}
/////////////////////////////////////////// javascript ende//////////////

//hier der code für die php datei datbac.php

<?php
$expArr = explode('#',$_POST['bildinfo']);
array_pop($expArr);
foreach($expArr as $i )
{
	$outArr = explode('-+-',$i);
	echo '<p>Bild Id: '.$outArr[0].' Div Id: '.$outArr[1].'</p>';
}

- - - Aktualisiert - - -

@Keith Hier ist eine bessere Alternative
1. javascript
HTML:
var data = new FormData();//für IE erst ab IE 10 

function getDivRowInfo()
{
 data = new FormData();
var dataString = false;
	for (var i = 0;i<dropzones.length;i++)
	{
		if(dropzones[i].dataset.info == '-'){continue;}
		data.append('bildinfo[]',dropzones[i].dataset.info+'-'+dropzones[i].dataset.id);
		dataString=true;
	}
	return dataString;
}
function sendHome()
{
var sendStr = getDivRowInfo();
//Überprüfen ob ein Bild abgelegt wurde
if(!sendStr){ alert('es wurde kein Bild abgelegt!');return; } //wenn nein dann Hinweis ausgeben
var xhtp = new XMLHttpRequest();
xhtp.open('post','datbac.php',true);
xhtp.addEventListener('load',datbac,false);
xhtp.send(data);
}
function datbac(e)
{
var income = document.createElement('div');
income.innerHTML = e.target.responseText;
document.body.appendChild(income);
}
PHP:
//////// datbac.php
<?php
$expArr = $_POST['bildinfo'];
foreach($expArr as $i )
{
	echo '<p>Bild Id: '.$i.'</p>';
}
 
Zuletzt bearbeitet von einem Moderator:
Hallochen zurück,
gibt es die Möglichkeit einge der Container vorzubelegen?
Wenn ich erneut auswählen möchte, könnte ich aus einer Datenbank auslesen, was ursprünglich eingegeben/gedropt wurde und dann weiter machen.
Also anstatt die Koordinaten per Mail zu versenden einfach die Werte in einer DB speichern und auslesen.
Wie kann ich also einfach ein Feld vorbelegen?

Gruß und Dank im Voraus :)
 
Zurück
Oben