Empfänger Feld automatisch füllen |
#AHBL
Alternativ Mitglied
Dabei seit: 05.02.12
Beiträge: 134
|
|
Erstmal wünsche ich allen ein schönes neues Jahr
Problembeschreibung:
So zu meinem kleinen Problem wo ich mich wohl die ganze Zeit auf dem Holzweg befinde. Wenn ich in einem Thread auf den PN Button von einem User gehe dann wird der Username ja schon oben bei Empfänger eingetragen damit man nur noch die Nachricht tippen muss. So nun wollte ich mir diese Funktion kopieren. Gesagt werden muss noch, dass ich im Profile einen Link habe zu einem PopUP was sich öffnen wenn man es anklickt und man dem User eine ANfrage schicken kann. Deswegen möchte ich sehr gerne, dass in dem Feld Empfänger, der Username des Accounts steht in derem Profil ich bin damit ich ihn nicht mehr per Hand eintippen muss doch verlaufen meine Versuche bis jetzt, immer in den Sand.
Das wäre mein Feld in der PHP Datei
code: |
1:
|
<input type="text" class="input" name="recipient" value="$username"> |
|
Und das der Teil der PHP Datei (ist eine externe)
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
if(isset($_POST['send'])) {
$db->query("INSERT INTO bb".$n."_relations_suggestions (id,sender,recipient,status,senderid,text,reagiert) VALUES (NULL,'$wbbuserdata[username]','".addslashes($_POST['recipient'])."','".addslashes($_POST['status'])."','$wbbuserdata[userid]','".addslashes($_POST['text'])."','0')");
header("Location: relationcp.php?action=view&sid=$session[hash]");
exit();
}
if($wbbuserdata['canusepms']==1) {
$find_username = mysql_query("SELECT username, userid FROM bb".$n."_users WHERE userid='".$id."'");
$username = $find_username['username'];
eval("\$anfrage .= \"".$tpl->get("relationcp_suggestion_post")."\";");
} |
|
Weil absenden tut er das ganze nur wird kein Empfänger eingetragen und so kommt diese Anfrage bei keinem an. Aber das Feld in meinem Template bleibt leer.
Liebe Grüße
Fehlermeldung:
Link zum Forum und Screenshot (KEINE Bilderhoster, per Dateianhang):
Was wurde zuletzt geändert oder eingebaut?
Dateianhang: |
screen.png (42,33 KB, 140 mal heruntergeladen)
|
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von #AHBL: 01.01.14 18:00.
|
|
01.01.14 18:00 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Steinadler
Alternativ Mitglied
Dabei seit: 02.09.08
Beiträge: 212
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi Forenversion: 2.3; Lite 1.0
|
|
Wenn Dein Value: $username ist, sollte der Name auch: username sein.
also so:
php: |
1:
|
<input type="text" class="input" name="username" value="$username"> |
|
Das da:
php: |
1:
|
if (isset($_POST['username'])) $username = trim($_POST['username']); |
|
sollte auch in Deiner php Datei stehen, und zwar unterhalb von:
php: |
1:
|
if (isset($_POST['send'])) { |
|
Aber da müsste man Deine eigene php Datei als Ganzes sehen.
|
|
01.01.14 19:04 |
Finden
Als Freund hinzufügen
|
|
|
Ich programmiere das mit ihr zusammen und habe deinen Vorschlag gerade einmal eingebaut, funktioniert aber leider nicht :-/
Ich kopier hier gleich mal einen größeren Teil des Codes rein und geb euch eine kleine Erklärung, was der überhaupt macht, vllt hilft das ja
Der Sinn und Zweck der Sache ist, dass wir automatische Relas für RPG-Foren schreiben wollen. Der Teil der Relas, um denen es dabei geht, ist die Ansicht - also wenn man also UserA eingeloggt ist und im Thread oder Profil von UserB auf die Relas klickt, kommt dort ein PopUp-Fenster und Zeigt die Relas von UserB an. Die PopUp-Seite ist folgendermaßen aufgebaut:
1. Infos zu UserB
2. Relas (unten im Code durch (...) ersetzt)
3. Wishlist (zB "ich wünsche mir noch eine beste Freundin")
4. Direkt Vorschläge machen
Die Funktionen 1-3 haben bisher problemlos funktioniert und tun das auch noch immer.
Bei der 4. Funktion ist dann allerdings das Problem. Unten auf dem PopUp befindet sich das, was im ersten Post angehängt wurde. Wenn UserA nun UserB eine Anfrage stellen möchte, ist es eben blöd, wenn er in das Feld Empfänger noch extra "UserB" eintippen muss. Deshalb soll dort einfach automatisch UserB stehen
Unser Gedanke war bisher: Wir haben eh schon die UserID von UserB ausgelesen, dass heißt wir müssen nur den zugehörigen Usernamen aus der bb1_users auslesen und ihn automatisch in das Feld "Empfänger" eingeben. Aber das Feld "Empfänger" bleibt leer
Das hier wäre dann der Teil der PHP, der die Ansicht betrifft
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
|
if($action == "view"){
$id = $_GET['id'];
$infos = $db->query_first("SELECT * FROM bb".$n."_relations_infos WHERE userid = '$id'");
$banner = "<img src=".$infos[banner].">";
$titel = $infos[titel];
$untertitel = $infos[untertitel];
$descr = $infos[descr];
$lyrics = $infos[lyrics];
(...)
$wishbit="";
$result_wunsch = $db->query("SELECT * FROM bb".$n."_relations_wunsch WHERE userid='".$id."' ORDER BY wishname ASC");
while ($viewww=$db->fetch_array($result_wunsch)) {
$name = "$viewww[wishname]";
$description = "$viewww[wishdescription]";
if($viewww[wishimage]==''){
eval("\$wishimg = \"".$tpl->get("relationcp_wishlist_noimage")."\";");
} else {
eval("\$wishimg = \"".$tpl->get("relationcp_wishlist_image")."\";");
}
eval ("\$wishbit .= \" ".$tpl->get("relationcp_wishlist_bit")."\";");
}
if(isset($_POST['send'])) {
if (isset($_POST['username'])) $username = trim($_POST['username']);
$db->query("INSERT INTO bb".$n."_relations_suggestions (id,sender,recipient,status,senderid,text,reagiert) VALUES (NULL,'$wbbuserdata[username]','".addslashes($_POST['username'])."','".addslashes($_POST['status'])."','$wbbuserdata[userid]','".addslashes($_POST['text'])."','0')");
header("Location: relationcp.php?action=view&sid=$session[hash]");
exit();
}
if($wbbuserdata['canusepms']==1) {
$find_username = mysql_query("SELECT username, userid FROM bb".$n."_users WHERE userid='".$id."'");
$username = $find_username['username'];
eval("\$anfrage .= \"".$tpl->get("relationcp_suggestion_post")."\";");
}
eval("\$tpl->output(\"".$tpl->get("relationcp_view")."\");");
} |
|
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Miss Mindless: 01.01.14 19:47.
|
|
01.01.14 19:32 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Steinadler
Alternativ Mitglied
Dabei seit: 02.09.08
Beiträge: 212
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi Forenversion: 2.3; Lite 1.0
|
|
Ich sehe das hier nicht in Deinem Code:
php: |
1:
|
if (isset($_POST['username'])) $username = trim($_POST['username']); |
|
Hast Du auch diese Zeile entsprechend bearbeitet?
php: |
1:
|
$db->query("INSERT INTO bb".$n."_relations_suggestions (id,sender,recipient,status,senderid,text,reagiert) VALUES (NULL,'$wbbuserdata[username]','".addslashes($_POST['recipient'])."','".addslashes($_POST['status'])."','$wbbuserdata[userid]','".addslashes($_POST['text'])."','0')"); |
|
Den ganzen 4. Abschnitt würde ich anders programmieren.
Vielleicht schaffe ich es bis Samstag Dir das mal vernünftig hin zu stricken.
|
|
01.01.14 19:45 |
Finden
Als Freund hinzufügen
|
|
|
Tut mir leid, hab die Version von vor der Bearbeitung gepostet :-/
Habs jetzt oben nochmal reineditiert, wie es inkl. deinem Vorschlag aussieht
Im Template haben wir auch genau das stehen, was du in deinem ersten Post geschrieben hattest
Was mich nur verwirrt ist, dass er in der Variable "$username" gar nichts zu speichern scheint. Hatte das jetzt schon öfter (also mit und ohne deiner Änderung) versucht, die Variable $username mir einfach hinter dem Empfänger, sozusagen einfach als Text ausgeben zu lassen und selbst das funktioniert schon nicht :-/
|
|
01.01.14 19:52 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|
Die id wird (oben) in Zeile 2 ausgelesen:
code: |
1:
|
$id = $_GET['id']; |
|
Hab $id auch mal an beliebiger Stelle ins Template gesetzt, das gibt er mir genau die Userid aus, die ich auch haben will
Das funktioniert also wie gewollt.
(deine beiden Vorschläge habe ich natürlich trotzdem mal ausprobiert, änder sich aber nichts :-/)
|
|
01.01.14 20:36 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Steinadler
Alternativ Mitglied
Dabei seit: 02.09.08
Beiträge: 212
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi Forenversion: 2.3; Lite 1.0
|
|
Die Zeile:
php: |
1:
|
$id = $_GET['id']; |
|
ist absolut tödlich!
Das solltest Du unbedingt abändern in:
php: |
1:
|
if (isset($_REQUEST['id'])) $id = intval($_REQUEST['id']); |
|
Ansonsten bitte mal die kompletten Templates und die komplette php.Datei als Dateianhang beifügen.
Wie gesagt.....vielleicht schaffe ich es WE Da mal ne Lösung anzubieten.
|
|
01.01.14 21:24 |
Finden
Als Freund hinzufügen
|
|
#AHBL
Alternativ Mitglied
Dabei seit: 05.02.12
Beiträge: 134
Themenstarter
|
|
Hallo Schrimm, ich habe es in POST geändert in meiner Datei die bei mir auf dem Server liegt.
Also sollte ich immer mir das POST ans Herz legen anstatt das GET und REQUEST geht klar
|
|
18.01.14 22:23 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|