Seite 1 von 1

Schrittweises Eintragen(für ein Nachrichtensystem)

Verfasst: 13.11.2004 16:33
von kratzer54847
hi @ all,

ich habe für die User auf meiner Seite ein kleines Nachrichtensystem gebaut(ähnlich dem wie bei phpBB).
Die User können also Nachrichten verschicken,emofangen usw.

jetzt möchte ich,dass die User mehrmals einzelne Empfänger bestimmen können.
Dazu habe ich ein Textfeld angelegt.

Das soll nun nach folgendem Schema funktionieren:

Eingabe in das Textfeld "User1"
Klick auf "Add bcc"
PN wird an User1 geschickt

danach Eingabe in das Textfeld "User2"
Klick auf "Add bcc"
PN wird an User1 und User2 geschickt

ich hoffe ihr versteht was ich meine...

wie kann ich das realisieren?

mfg Johny

Verfasst: 13.11.2004 17:33
von PhilippK
Es gibt da relativ genau so viele Lösungen wie Wasser auf dieser Welt ;-)
Du kannst es über ein Cookie auf Client-Seite verwalten, du kannst mit Session (über Cookie oder über URL) arbeiten, du kannst mit versteckten Formularfeldern arbeiten (wohl das einfachste), ...

Gruß, Philipp

Verfasst: 13.11.2004 17:42
von Blutgerinsel
Mir ist dein IST-Zustand nicht klar.....

[ ] PM-System
[ ] Mail-System

Gehe vom Letzteren aus.....

Gut du kannst BCC,CCC Felder anzeigen lassen in einer zusätzlichen Textbox....

Da gibt es Möglichkeiten:
a) Generieren der Felder via document.write(); -> Javascript
b) Standardmäßig ausblenden via CSS Eigenschaft display:none und via Javascript dann einblenden z.B. onclick auf einen Link
c) HTML Formular neu vom Server anfordern

Letzteres ist unperformant.....

Gut in diesen Textfelder gibst du deine Adressen ein.....Mehre z.B. durch Semikolon trennen.....

Wenn du dann die Mails abschickst kannst du via explode nach dem ; ein Array erzeugen was du dann durchläufst und den Header der Mail erzeugst.....

-> http://de2.php.net/manual/de/function.mail.php

Wo ist das Problem?

Verfasst: 13.11.2004 19:48
von MrMind
Blutgerinsel hat geschrieben:Gut in diesen Textfelder gibst du deine Adressen ein.....Mehre z.B. durch Semikolon trennen.....

Wenn du dann die Mails abschickst kannst du via explode nach dem ; ein Array erzeugen was du dann durchläufst und den Header der Mail erzeugst.....

Dies würde ich auch empfehlen, da die anderen Lösungen nicht das Gelbe vom Ei sind.

Javascript kann deaktiviert sein. Man kann zwar den User via <noscript>Text</noscript> darauf hinweisen, das es aktiviert sein sollte, aber das der User nach so einem Text es nur für diese Mailing Sache aktiviert, ist eher unwahrscheinlich.

Mfg
MrMind

Verfasst: 13.11.2004 20:17
von kratzer54847
hoi,

nein es handelt sich wie beschrieben um ein PM-System. :grin:

Verfasst: 13.11.2004 20:24
von MrMind
kratzer54847 hat geschrieben:hoi,

nein es handelt sich wie beschrieben um ein PM-System. :grin:
Naja dann kannste dies trotzdem verwenden @explode mit Merhfach angabe

Als Delimeter würd ich allerdings ein , verwenden ;)

Das sollte dann so ähnlich aussehen:

Eingabe:

Code: Alles auswählen

Hans,Peter,Jörg,Gustav
Code:

$name_array = explode(',',$_POST['name']);

for( $i=0; $i < sizeof($name_array); $i++)
{

//Eintragen in das PM System, Namen können nun durch $name_array[$i] aus der Liste entnommen werden
}[/code]

Mfg
MrMind

Verfasst: 13.11.2004 20:33
von kratzer54847
genau so wollte ich das haben,
nur eben halt mit der Besonderheit,dass man,wenn man eine Nachricht an mehrere senden will,man einfach die Namen nacheinander in ein textfeld eingibt,aber nach folgendem Schema:

Eingabe "name1" -> Klick auf "Add Bcc" -> Eingabe "name2" -> Klick auf "Add Bcc" -> ...

die ganzen eingegebenen Namen sollen dann in der "to"-Zeile so angezeigt werden:

"name1, name2..."(aber halt kein Textfeld sondern nur normaler Text)

Verfasst: 13.11.2004 20:54
von MrMind
Mh dann würde ich dir das doch mit JS empfehlen und zwar wie folgt:

1.) Neben der Zeile TO: einen Link setzten welches ein kleines Fenster öffnet wo der User nach den Usern suchen kann an die er die NAchricht senden will.

2.) beim absenden (am besten bezeichnest du den Submit-Button mit der Aufschrift Hinzufügen) wird dann das JavaScript geladen, das so aussehen könnte:


JS-Code

Code: Alles auswählen

function addUser(username)
{
    if( parent.getElementById("to").value != "" )
    {
        username = "," + username;
     }

     parent.getElementById("to").value += username;
}
Ob das so klappt kann ich net sagen, kenne mich selber net so gut aus mit JS, wenn net dann sag bescheid, ich bastel dir dann ne funktionierende JS-Funktion.
Die Methode getElementById ruft dann das Input-Text-Feld auf der Hauptseite. diese Feld muss lediglich noch mit dem id - Attribut gefüttert sein:

Code: Alles auswählen

 <input type="text" name="name" value="" id="to" \>
Und im Formular muss das so aussehen, damit die Funktion klappt:

Code: Alles auswählen

<form onSubmit="addUsername">
im zweiten Fenster.

Mfg
MrMind

PS: für das onSubmit und ähnliche JS Fragen: http://de.selfhtml.org/javascript/sprac ... m#onsubmit

Verfasst: 14.11.2004 10:45
von Blutgerinsel
Hey,

ob das sinnvoll wäre mit dem BCC, CCC Feldern mag ich fast bezweifeln....
PMs sind normalerweise eh eigentlich immer unsichtbar.....

Aber wenn du eine interne PM Weiterleitung, Kopieren, Archivierung einsetzen willst und kein Support Dienst mit Zuordnungen zu den jeweiligen Bearbeitern....Geclosed, Open etc.

Dann lässt sich das eigentlich leicht anwenden....Letzteres wäre nämlich ein ziemliches ERP Modell :wink:

Gut wie Mr. Mind schon sagte bietet sich auch hier an, dass man via Delimeter soviele SQL Statements erzeugt wie die Eingaben vorgenommen wurden und mit Javascript erspart man sich das lästige eingeben.....

getElementById ist aber unnötig, da man ohnehin ein Formular hat damit geht natürlich

Code: Alles auswählen

document.forms['sendpm'].elements['toinput'].value
Du musst lediglich wissen wie das Fenster heisst von dem das Popup aufgerufen wurde....Aber auch das findest du im SelfHTML....