Button welcher die momentane URL einspeichert

Alles zu Styles, Templates, Icons und Smilies für phpBB 3.0.x, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
phpBB Styles Demo
Forumsregeln
Bei Style spezifischen Fragen ist der Stylename und die Downloadquelle des Styles erforderlich, besser noch die URL vom betroffenen Forum.
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Button welcher die momentane URL einspeichert

Beitrag von sneasel »

Hallo,

ich will für mein Forum ein Favoriten-Menü bauen. In diesem sollen die User 5 Kategorien einspeichern können.
So habe ich es mir vorgestellt:

1. auf der Seite Fav. verwalten wird jede Kategorie mit 5 Buttons dahinter aufgelistet. (z.B. BSPKategorie mache zu (fav1) (fav2) (fav3) )
2. Wenn man einen dieser Buttons drückt wird die aktuelle URL in das zu den Favoriten zugehörige Feld eingespeichert, welches sich in dem Datensatz des Users befindet.
3. Das Menü Favoriten werde ich dann mit diesen URL-Daten füllen :D (Das bekomm ich vll alleine hin)

Könnt ihr mir erklären bzw. en Tutorial posten wie ich durch nen Button die aktuelle URL bekomme und dann abspeichern kann?

MfG Matthias

hier die Page bringt aber net viel :D: http://www.deinekarrierevonmorgen.de/news.php
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Button welcher die momentane URL einspeichert

Beitrag von Elsensee »

Hättest du gerne die komplette URL (mit http://www.deinekarrierevonmorgen.de/) oder nur den relativen Pfad (news.php - adm/index.php)

Die Lösung für beides ist ein simples Stück Code geschrieben in Javascript. Die komplette URL erreichst du mit:

Code: Alles auswählen

location.href
und nur den Pfad (mit vorangestelltem '/') mit:

Code: Alles auswählen

location.pathname
:)
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

Hab leider keine Ahnung von Javascript :D

Könnte das funktionieren:

Code: Alles auswählen

<script type="text/javascript">
function url (geturl)
{
  location.href = geturl;
}
</script>
das müsste doch die url in die variable url speichern, oder muss ich da noch was anders machen?


EDIT: könnte es so funktionieren bzw. was mach ich da falsch???

In php-datei

Code: Alles auswählen

<script type="text/javascript">
function favorit()
{
$url = location.href;
$eintrag = "INSERT INTO Fav1 (url) VALUES ('$url')";
alert(Favorit hinzugefügt);
}
</script>


In html-datei

Code: Alles auswählen

<form>
<input type="button" value="Zu Favoriten hinzufügen" onclick="favorit()" />
</form>

MfG Matthias
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Button welcher die momentane URL einspeichert

Beitrag von Elsensee »

LOL. :D

Du kannst in Javscript keinen PHP-Code verwenden. (Zum Leiden vieler Programmierer)

Mach's mit Ajax. :)
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

function favorit()
{
$url = $_SERVER['REQUEST_URI'];
$eintrag = "INSERT INTO Fav1 (url) VALUES ('$url')";
alert(Favorit hinzugefügt);
}

Und so? Ist das jetzt nicht ne php funktion???

Ich probier schon seit Tagen rum wien irrer und komm net weiter :D
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Button welcher die momentane URL einspeichert

Beitrag von Elsensee »

Du kannst eine PHP-Funktion nicht aus Javascript aufrufen - die einzige Verbindung besteht durch Ajax.
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

Was ist dennan der Funktion Javascript ? :D
das alert muss net sein wenns an sowas liegt
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Button welcher die momentane URL einspeichert

Beitrag von Elsensee »

Das alert ist Javascript - ja. Wenn du das jetzt so machst und das versuchst mit dem Button aufzurufen, wirst du merken, dass es nicht klappt... ES KLAPPT EINFACH NICHT!

Ich hab mal eine Ajax-Abfrage (ohne JS-Bibliotheken) aus dem Internet gefischt:

Code: Alles auswählen

var ajax = null;

try
{
	// Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
	ajax = new XMLHttpRequest();
}
catch(e)
{
	try
	{
		// MS Internet Explorer (ab v6)
		ajax  = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			// MS Internet Explorer (ab v5)
			ajax  = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			ajax  = null;
			window.alert("Ihr Browser unterstützt keine asynchronen Abfragen");
		}
	}
}
Damit wird das Ajax-Objekt erstellt - und um das ganze dann auszuführen:

Code: Alles auswählen

// Funktion zum Ausführen einer Ajax-Abfrage
function Ajax()
{
	if (ajax)
	{
		ajax.open('GET', 'php-datei.php', true); //Hier die Adresse zur PHP-Datei - wie bei GET üblich, kannst du Parameter hinten ran hängen
		ajax.onreadystatechange = function()
		{
			if (ajax.readyState == 4) //Wenn komplett
			{
				//Hier der Code, der ausgeführt werden soll, wenn eine Antwort zurückkommt.
				//ajax.response enthält den Text, den du z.B. mit "echo" ausgibst.
			}
		};
		ajax.send();
	}
}
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: Button welcher die momentane URL einspeichert

Beitrag von sneasel »

Hallo,

hiermit müsste es doch gehen:

In HTML-Datei:

Code: Alles auswählen

<form method="post">
<input type="submit" name="button" value="senden">
</form>
Und in der PHP-Datei:

Code: Alles auswählen

if(isset($_POST['button'])){
   $fav_url = $_SERVER['REQUEST_URI'];
   $fav_id = substr($_SERVER['REQUEST_URI'], -1);
   $fav_name = "SELECT forum_name FROM kas_phpbb_forums WHERE forum_id = $fav_id ";
$eintragen = mysql_query("INSERT INTO kas_phpbb_users (fav_url, fav_name) VALUES ('$fav_url', '$fav_name')");
} 
hab nur noch kleine Probs:
1: in der Url steckt die forum id (ganz hinten). Wie kann ich die Url bis zu dem lezten Gleich-zeichen abschneiden? (bis jetzt schneide ich nur dioe letzte Zahl raus
2: wie komme ich an die id des derzeitigen users (muss ja in der Tabelle kas_phpbb_users die richtige Zeile (den richtigen user) ansprechen.
3: Die Felder die ich hinzufügen will existieren ja noch nicht. werden die automatisch erstellt, oder muss ich sie bei jedem wechsel löschen,anlegen,füllen?

MfG Matthias

PS: Ich hab mal probier ob ich mit echo die momentane url nach knopfdruck darstellen kann und es hat funktioniert. Dann müsste das doch auch klappen
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Button welcher die momentane URL einspeichert

Beitrag von Elsensee »

Dadurch wird zwar die Seite neugeladen, aber okay.
Dein PHP-Code: (mit phpBB-Methoden)

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

if (isset($_POST['button']))
{
    $fav_url = $_SERVER['REQUEST_URI'];
    $fav_id = substr($fav_url, strripos($fac_url, 'f=') + 2);
    $sql = "SELECT forum_name FROM " . FORUMS_TABLE . " WHERE forum_id = '" . $fav_id . "';";
    $result = $db->sql_query($sql);
    $fav_name = $db->sql_fetchrow($result)['forum_name'];
    $db->sql_freeresult($result);
    $sql = "INSERT INTO " . USERS_TABLE . " (fav_url, fav_name) VALUES ('" . $fav_url . "', '" . $fav_name . "');";
    $db->sql_query($sql);
}

redirect('irgendeine-adresse'); 
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Antworten

Zurück zu „[3.0.x] Styles, Templates und Grafiken“