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

Wert übergeben

KeithKeith

New member
Hallo :), folgendes Problem kann ich leider nicht lösen:
in x ist ein Wert gespeichert und diesen hänge ich aktuell vor jeden data.append.....string.
so sieht es aus:
UID9,PID20,usw....
UID9,PID14,usw....
Ich brauche die UID9 aber nur 1x und würde es eigentlich so lösen:
return dataString;.=x;
und aus der Schleife würde ich es entfernen.
Leider funktioniert es so nicht.
Hat jemand einen Tipp wie es richtig geht?
Gruß KK

Code:
function getDivRowInfo()
{
 data = new FormData();
var dataString = false;
var x = document.getElementById('sndBtn').value;
        for (var i = 0;i<dropzones.length;i++)
        {
                if(dropzones[i].dataset.info == '-'){continue;}
                data.append('bildinfo[]','UID'+x+',PID'+dropzones[i].dataset.info+',MID'+dropzones[i].dataset.id);
                dataString=true;
        }
        return dataString;
}
 
lass das Anhängen weg und setz stattdessen ein eigenes Feld mit der ID.

Besser ist noch das ganze Zusammensetzen sein zu lassen und stattdessen die Formulardaten zu strukturieren. PHP kann solche Strukturen dann nämlich gleich aus dem Request parsen.

Code:
data.append('bildinfo['+i+'][UID]', x);
data.append('bildinfo['+i+'][PID]', dropzones[i].dataset.info);
data.append('bildinfo['+i+'][MID]', dropzones[i].dataset.id);
 
Um das Ganze etwas bequemer zu gestalten kannst du auch mit JSON arbeiten:

PHP:
var formData = new FormData;

var images = [
	{uid: 1, pid: 1, mid: 1},
	{uid: 2, pid: 2, mid: 2},
	{uid: 3, pid: 3, mid: 3},
];

formData.append('images', JSON.stringify(images));

Serverseitig musst du das natürlich wieder dekodieren. Mit PHP sieht das bspw. so aus:
PHP:
$images = json_decode($_POST['images'], true);

Ich würde in Verbindung mit FormData generell alle Werte im JSON-Format übertragen und serverseitig dekodieren - dann hat man auch kein Problem mit numerischen Werten.
 
Hallo Dormilch, gefällt mir :) (Jason ist noch eine Komponente mehrm deshalb verschiebe ich mal die Möglichkeit in die zweite Reihe :)) so habe ich alle "Felder" separat.
Wie kann ich die nun im empfänerscript annehmen?
Gruß KK
 
schon passiert:
PHP:
$expArr = $_POST['bildinfo'];
$mei = (explode(',',$expArr,0));

Als Ergebnis bekomme ich Array :-(

Die erste Zeile des Array ($expArr) sieht so aus
UID9,PIDProdukt,MID00
Eigentlich müsste das Ergebnis UID9 sein :-(
Gruß Keith
 
hey,
mit:
$mei = explode(',',$text);
und dann
echo $mei[0];
bzw.
echo $mei[1];
bekomme ich jetzt endlich die einzelnen Felder/Werte
:) Puhhh ein Schritt weiter!
Danke bis hier... morgen geht's weiter!
 
ne,
deinen:
HTML:
data.append('bildinfo['+i+'][UID]', x);
data.append('bildinfo['+i+'][PID]', dropzones[i].dataset.info);
data.append('bildinfo['+i+'][MID]', dropzones[i].dataset.id);
+
PHP:
$expArr = $_POST['bildinfo'];

foreach($expArr as $i )
{
     $matrixtext .= $i. "\n" ;
}
$text = $matrixtext;

$mei = explode(',',$text); // String am Komma trennen
$mein = substr($mei[0], 3, 10); // ab Zeichen3 bis 10 alles ausgeben
 
du meinst :
PHP:
foreach($expArr as $i )
{
     $matrixtext .= $i. "\n" ;
}
$text = $matrixtext;
deswegen?
wenn ich ehrlich bin verstehe ich diesen Teil nicht wirklich. Es wird der übergebene String irgendwie so verarbeitet, dass auf einzelne Teile zugegriffen werden kann.
Ich habe einen String in dem Daten liegen, die wie ein Array angeordnet sind.

mit
PHP:
$mei = explode(',',$text); // String zerstückeln und beim Komma getrennt
$mein = substr($mei[0], 3, 10);
selektiere ich aus dem String
UID9,PIDProdukta,MID00
UID9,PIDProduktb,MID01
das UID9 und verwende ledioglich die 9 in der Betreffzeile der Mail die mit diesen Daten versendet wird.
Im Text (Dem Textbereich) der Mail ist aber die UID9 weiterhin vorhanden.
im Moment versuche ich die zu löschen.
Fehlermeldungen, oder so gibt es nicht.
Gruß Keith
 
Offenbar nutzt du nicht die Variante von Dormilich, sonst müsstest du die Werte nicht am Komma zerlegen. Nutze entweder die JSON-Variante aus #3 (dann sparst du dir den ganzen Mist) oder hänge jeden deiner Werte (UID, PID, MID) separat an, wie in #2 gezeigt.
 
Hallo,
heute funktioniert leider nichts mehr ... hmm, hab nichts geändert, aber läuft nicht mehr.
Mails kommen an, aber immer nur mit Inhalt: array
Ein return var_dump($_POST); brint folgendes Ergebnis:

array(1) { ["bildinfo"]=> array(1) { [0]=> array(3) { ["UID"]=> string(1) "9" ["PID"]=> string(9) "Produkta" ["MID"]=> string(2) "00" } } }
Also eigentlich alles angekommen.
Das:
PHP:
foreach($expArr as $i )
{
     $matrixtext .= $i. "\n" ;
}
$text = $matrixtext;
hat gesternnoch funktioniert.

Bin leicht erschüttert :)
Kein Ansatz mehr.
Jemand noch einen Tipp?
Gruß Keith
 
okay,
wie sollte ich es machen :)
Das kann doch nicht so schwer sein!
:)
ab hier anders?
PHP:
$expArr = $_POST['bildinfo'];
return var_dump($_POST);

foreach($expArr as $i )
{
     $matrixtext .= $i. "\n" ;
}
$text = $matrixtext;
Gruß Keith
 
ja, genau und ich bekomme es nicht hin die aufzuteilen.
bzw. im moment nicht mal mehr als string, warum auch immer.
Über weitere Hilfestellung würde ich mich sehr freuen :)
Gruß Keith
 
Zurück
Oben