• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

ähnliches wie popub

wessei

Neues Mitglied
hallo jetzt meld ich mich mal wieder
und zwar bin ich zur zeit auf der suche nach ne art wie popub aber irgendwie versteh ich von javascript nur bahnhof.

möchte sie gerne zum nachrichtenschreiben benutzen um nicht die ganze seite neu zu laden damit der user auf das nachrichtenfeld zu kommen also über einen link aufrufbar. in diesem könnte noch ein popub geladen werden in dem ich smiles einfügen kann.
desanderen sind meine formulare jetzt alle mit html und php geschrieben. nun möcht ich gerne wenn sich ein fehler ereignet das ein hinweis aufgeht und nichts andes anklickbar ist also über einen button

also diese popub sollten so aufgebaut sein das das der ganze hintergrund grau in leichten transbarent in % angegeben und in der mitte des bildschirmes sollte das popub fenster erscheinen in dem ich variabl die überschriften und den text schreiben kann. darauf sollten sich ein schließen-bild am rechten oberen eck und variabl ein button mit ok, senden, abbrechen, speichern und/oder zurücksetzen stehen und die zugehörige funktion fenster schließen und das programm entweder zurückzusetzen oder das programm weitersetzt zudem länge und höhe variabl einstellbar.

hab mir schon etliche scripte angesehen aber komm auf keinen grünen zweig

welche funktion könnt ich verwenden ohne in die falle eines popub-blocker zu kommen?
wie kann ich variablen von php zu javascript schicken?
so was ähnliches wie in facebook oder so

hättet ihr eine schöne lösung für mich wie ich dies am besten bastle
steh leider komplett am schlauch :sad:

dank euch schon mal in vorraus

mfg. wessei
 
Werbung:
Was du suchst ist kein Popup sondern ein Flyout. Das ist ein einfacher HTML-Code der per CSS gestaltet und positioniert und per JavaScript eingeblendet wird. Mini-Beispiel:

HTML:
<p><a href="#" onclick="return openflyout('myflyout');">Öffnen</a></p>
<div id="myflyout">Das hier steht irgendwo absolut positioniert oberhalb der restlichen Seite</div>

Code:
#myflyout {
 position: absolute;
 width: 500px;
 height: 200px;
 top: 20px;
 left: 20px;
 display: none;
}

Code:
function openflyout( objid ) {
 document.getElementById(objid).style.display = "block";
 return false;
}

Eine von JavaScript gelieferte fertige Funktion dafür gibt es nicht. Man kann aber JavaScript-Bibliotheken wie jQuery nutzen um damit so etwas ohne viel eigenen Code zu schaffen. Wichtig ist wie gesagt, dass man per CSS die Gestaltung so vornimmt wie man es haben möchte.
 
dankeschön für die schnelle hilfe

werds gleich mal ausprobieren und testen

mfg. wessei
 
Werbung:
so hab dies jetzt erneuert und funktioniert wunderbar nur bin ich über folgendes problem gestoßen:

hab so ne art userliste in der jeder user aufgelistet ist
links neben jedem user ist ein verlinktes bild (pn senden). wenn man draufklickt öfnet sich die oben genante funktion.

das problem zum senden sollte die userid mitübergeben werden um eine pn zu schicken. zur zeit liest es nur die letzte userid aus und schreibt mir egal auf welchem user ich klicke den letzten namen der liste aus.

hat da jemand eine idee?

code:

index.php
<body>
<div class="index_content">
<?php include("content.php"); ?>
<?php include("pn/pn_to.php"); ?>
</div>
</body>
über content.php wird "userliste.php" aufgerufen

userliste.php
<div class="user_liste">
<div class="user_pn">PN</div>
<div class="user_ni">Nickname</div>
</div>
<?php
$sql = "SELECT * FROM USER ORDER BY Nickname ASC ";
$result = mysql_query($sql) OR die("<pre><br>".$sql."</pre><br>".mysql_error());
$menge_user = mysql_num_rows($result);
if($menge_user == 0) {
echo "Keine User aktiv";
}
else {
while($row = mysql_fetch_assoc($result)) {
?>
<div class="user_liste">
<div class="user_pn">
<?php
if((($menge_blockiert_zu == 0) and ($menge_blockiert_von == 0))) {
if($_SESSION['UserID'] != $row['ID']) {
?>
<a href="#" onclick="return pn_to_open('pn_to');">
<img title="PN senden" src="./images/pn.gif" border="0" height="15px" width="15px" alt="PN senden">
</a>
<?php
}
}
?>
</div>
<div class="user_ni"><a href="?page=user&content=profile&uid=<?php echo htmlentities($row['ID'], ENT_QUOTES) ?>"><?php echo htmlentities($row['Nickname'], ENT_QUOTES) ?></a></div>
</div>
<?php
}
}
?>

mit der funktion:

function pn_to_open(pn_to) {
document.getElementById(pn_to).style.display = "block";
return false;
}

öfnet es die includierte pn_to.php datei

pn_to.php
<form name="pn_senden" action="?page=pn&content=pn_aktion&uid=<?php echo htmlentities($_SESSION['UserID'], ENT_QUOTES); ?>" method="post" accept-charset="ISO-8859-1">
<div class="pn_to" id="pn_to">
<div class="pn_to_inner">
<div class="pn_to_c_m">
<?php
$sql = "SELECT * FROM USER WHERE ID = '".mysql_real_escape_string(trim($_GET['uid']))."' ";
$result = mysql_query($sql) OR die("<pre><br>".$sql."</pre><br>".mysql_error());
$row = mysql_fetch_assoc($result);
$deleted_no = mysql_real_escape_string(trim(0));
$gelesen_no = mysql_real_escape_string(trim(0));
if(!$row['Nickname']) {
$nickname = "<h3>Keinen User ausgew&auml;hlt</h3>";
}
else {
$nickname = htmlentities($row['Nickname'], ENT_QUOTES);
}
?>
<div class="pn_senden_zu_pn_to">neue PN senden an: <?php echo htmlentities($nickname, ENT_QUOTES); ?></div>
<div class="pn_senden_betreff_pn_to"><input type="text" class="text" name="Betreff" value="kein Betreff"></div>
<div class="pn_senden_close_pn_to"><a href="#" onclick="return pn_to_close('pn_to');"><img title="PN close" src="./images/flyer/_close.png" border="0" alt="PN close"></a></div>
<div class="pn_senden_text_an_pn_to"><textarea class="textarea" name="Text"></textarea></div>
<input type="hidden" name="ID" value="<?php echo htmlentities($row['ID'], ENT_QUOTES); ?>">
<div class="pn_senden_su_pn_to"><input type="submit" class="submit" name="submit" value="senden"></div>
<div class="pn_senden_re_pn_to"><input type="reset" class="reset" value="Zurücksetzen"></div>
</div>
</div>
</div>
</form>

zum senden und auslesen des usernamen brauch ich die richtige id des angeklickten users.

hat da jemand eine ahnung wie ich das auslesen kann?

mfg. wessei
 
Ich würde den Aufbau grundsätzlich anders machen. Der Funktion zum Öffnen des Popups sollte als Parameter die userid übergeben werden. Abhängig davon musst Du dann das anzuzeigende Formular im Popup anpassen. Das geht allesamt per JavaScript.
 
wie könnte so etwas aussehen?

hab leider noch nicht viel ahnung von javascript.

mfg. wessei
 
Werbung:
pn senden mit uderid von der userliste aus

hallo da meld ich mich nochmal.
mein anliegen diesmal, versuch seit tagen von meiner userliste die mehrere userid´s enthält direkt pn´s zu bestimmten usern zu senden.
das klapt ja alles wunderbar wenn ich die zum pn senden formular in einer neuen seite aufrufe. schön langsam wird meine seite sehr groß und der datentransfare imens.
aus diesem grund wollte ich das zum pn senden formular als layer mit display: block; einblenden und mit display: none; ausblenden.
funktioniert ja auch nur das problem darin liegt das immer der user mit der userid, die als letztes in der liste angzeigt wird die pn´s bekommt.
wie kann ich die userid mit javascript bei diesem code (oder anderer wenn benötigt):
HTML:
    <a href="#" onclick="return pn_to_open('pn_to');">
                       <img title="PN senden" src="./images/pn.gif" border="0" height="15px" width="15px" alt="PN senden">
    </a>
mitgeben das die funktion:
Code:
function pn_to_open(pn_to) {
  document.getElementById(pn_to).style.display = "block";
  return false;
}
aufruft, um die userid nach dem klick auf das bild die includierte datei pn_to.php von display: none; zu display: block; setzt und ich mit der userid weiterarbeiten kann. z.b: den usernamen von der datenbank auslesen und die pn erfolgreich an den bestimmten user zu senden.

bin auch gerne bereit für andere vorschläge.
wenn jemand eine idee hätte wär ich dem sehr dankbar.

mfg. wessei
 
Hab dein neues Thema mit deinem alten Thema verbunden - du musst zur selben Frage nicht 2 Topics eröffnen. Und hier sieht man wenigstens auch was für Quellcodes noch dran hängen.

Und wie ich oben schon geschrieben hatte:
Die Funktion braucht einen weiteren Parameter (sehe nicht, dass Du das überhaupt probiert hast):

PHP:
... onclick="return pn_to_open('pn_to', '<?php echo $row["ID"]; ?>');" ...

Und die JavaScript-Funktion muss diese ID übernehmen

Code:
function pn_to_open(pn_to, userid) {

und dann so in dein Formular einbinden, dass das Formular in Bezug auf diese UserID abgeschickt wird.

Leider weiß ich nicht, welches der Formularfelder diese UserID enthalten soll. Ich nehme einfach mal an es ist

PHP:
<input type="hidden" name="ID" value="<?php echo htmlentities($row['ID'], ENT_QUOTES); ?>">

Wenn ja, dann solltest Du bei diesem noch eine ID ergänzen:

PHP:
<input type="hidden" name="ID" id="userid" value="<?php echo htmlentities($row['ID'], ENT_QUOTES); ?>">

und kannst dann in der Funktion "pn_to_open" die userid in genau dieses Feld schrieben.

Code:
document.getElementById("userid").value = userid;
 
herzlichn dank
werds mir in zukunft merken ;)

habs jetzt geändert aber irgendwie funktioniert es noch nicht

<form name="pn_senden" action="?page=pn&content=pn_aktion&uid=<?php echo htmlentities($_SESSION['UserID'], ENT_QUOTES); ?>" method="post" accept-charset="ISO-8859-1">
<div class="pn_to" id="pn_to">
<div class="pn_to_inner">
<div class="pn_to_c_m">
<?php
$sql = "SELECT
*
FROM
USER
WHERE
ID = '".mysql_real_escape_string(trim($_GET['uid']))."'
";
$result_pn_to = mysql_query($sql) OR die("<pre><br>".$sql."</pre><br>".mysql_error());
$row_pn_to = mysql_fetch_assoc($result_pn_to);
$deleted_no = mysql_real_escape_string(trim(0));
$gelesen_no = mysql_real_escape_string(trim(0));
if(!$row['Nickname']) {
$nickname = "<h3>Keinen User ausgew&auml;hlt</h3>";
}
else {
$nickname = htmlentities($row['Nickname'], ENT_QUOTES);
}
?>
<div class="pn_senden_zu_pn_to">neue PN senden an: <?php echo htmlentities($nickname, ENT_QUOTES); ?></div>
<div class="pn_senden_betreff_pn_to">
<input type="text" class="text" name="Betreff" value="kein Betreff">
</div>
<div class="pn_senden_close_pn_to">
<a href="#" onclick="return pn_to_close('pn_to');">
<img title="PN close" src="./images/flyer/_close.png" border="0" alt="PN close">
</a>
</div>
<div class="pn_senden_text_an_pn_to"><textarea class="textarea" name="Text"></textarea></div>
<input type="hidden" id="userid" name="ID" value="<?php echo htmlentities($row_pn_to['ID'], ENT_QUOTES); ?>">
<input type="hidden" name="Aktion" value="pn_senden">
<div class="pn_senden_su_pn_to"><input type="submit" class="submit" name="submit" value="senden"></div>
<div class="pn_senden_re_pn_to"><input type="reset" class="reset" value="Zurücksetzen"></div>
</div>
</div>
</div>
</form>

die userid wird abgefragt in der sql-abfrage, aber da bekommt sie immer noch die letzte userid und verschickt mir die pn an den falschen user.

mfg. wessei
 
Werbung:
Dann benutze bitte mal Firebug oder ein ähnliches Instrument deines Browsers um zu schauen, was die JavaScript-Funktion macht, was sie in welches Feld schreibt und was in den input-hidden-Feldern drinne steht. Anhand des Quellcodes hier kann ich das nicht nachvollziehen.
 
ohh hatte in der funktion leider einen schreibfehler.
funktioniert einwandfrei :D recht herzliches dankeschön.

dennoch hab ich einen kleinen schönheitsfehler:
im formular das sich öffnet sollte oben als überschrift der name des empfängers stehn damit die user wissen es ist auch dieser.
wie könnt ich mit einer javascriptvariablen in php eine mysql abfrage starten um den korrekten namen zu erfahren?

mfg. wessei
 
Das könntest Du per AJAX machen. Du kriegst ja in der Funktion die userid mit. Mit dieser löst Du einen AJAX-Request aus wodurch vom Server der Name des Empfängers geholt wird. Wenn er da ist, bindest Du ihn per JavaScript an der Stelle ein wo Du haben willst.
 
Werbung:
AJAX sagt mir gar nichts hab grad gegoogelt und immer wieder die funktion


// Internet Explorer
ajax_obj = new ActiveXObject("Microsoft.XMLHTTP");
// Die anderen Browser
ajax_obj = new XMLHttpRequest();

gelesen.

versteh aber nicht wo ich diese einbauen oder etc. muss.

der name wird ja erst dan von der datenbank aufgerufen, wenn
onclick="return pn_to_open('pn_to', '<?php echo $row["ID"]; ?>');"
aktiviert wird.

weis aber nicht wie ich die id dan in
$sql = "SELECT
*
FROM
USER
WHERE
ID = '".mysql_real_escape_string(trim($row_pn_to['uid']))."' //da reinschreiben muss
";
$result_pn_to = mysql_query($sql) OR die("<pre><br>".$sql."</pre><br>".mysql_error());
$row_pn_to = mysql_fetch_assoc($result_pn_to);
(in die 6 zeile) schreiben muss.

mfg. wessei
 
Schau dir mal AJAX-Tutorials unabhängig von dem an was Du gerade machen willst. Dann verstehst Du sicherlich auch, dass Du JavaScript nur zum Auslösen des Requests und Verarbeiten des Response brauchst. Dein PHP-Code müsste folglich auf dem Server liegen und von diesem AJAX-Request angesprochen werden.
 
ok jetzt hab ichs anders gelöst weil sowiso alle namen nur einmal vorhanden sein können.

onclick="return pn_to_open('pn_to', '<?php echo $row["Nickname"]; ?>');"

so funktionierts
muste nur die abfrage des users für den eintrag ändern ;-)

mfg. wes
 
Werbung:
Zurück
Oben