myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Webmaster Talk > Entwicklung & Programmierung
Seite neu laden

Voting-system ohne Seitenwechsel

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 03.01.12, 18:17   #1
Quesstor
Anfänger
 
Registriert seit: Apr 2009
Beiträge: 8
Bedankt: 3
Quesstor ist noch neu hier! | 0 Respekt Punkte
Standard Voting-system ohne Seitenwechsel

Liebe Gullyaner und Gullyanerinnen,
mein Ziel ist es einen bestimmten Post per klick positiv oder negativ bewerten zu können.

Wenn ich den vote mit einem Link, der Variabeln mitgibt (zb link.php?vote=1) oder mit einem Formular abschicke wird ja immer ein Seitenwechsel vorgenommen bzw. die selbe Seite nochmal geladen.
Eben das will ich verhindern. Weiß jemand Rat?

Vielleicht gibt es eine Möglichkeit das Formular abzuschicken ohne das die Seite geladen wird?
oder kann man das einfach mit AJAX realisieren? Hab bis jetzt nur mit PhP, Html und Java gecoded. Wäre super wenn es damit eine Lösung gibt, sonst hab ich auch kein Problem mich in eine neue Sprache einzuarbeiten!

Danke schonmal für eure Antworten!
Quesstor
Quesstor ist offline   Mit Zitat antworten
Ungelesen 03.01.12, 19:52   #2
revolerheld5
Newbie
 
Benutzerbild von revolerheld5
 
Registriert seit: Dec 2011
Beiträge: 60
Bedankt: 19
revolerheld5 ist noch neu hier! | 0 Respekt Punkte
Standard

Ja das geht einfach mit Ajax. Ajax == JavaS*****. Machst am besten mit JQuery oder kannst auch auf Ajax selber zugreifen. Java (vllt meintest du eh JavaS*****^^) wird dir nichts helfen.
revolerheld5 ist offline   Mit Zitat antworten
Ungelesen 04.01.12, 17:48   #3
Mr_Braun
abcdefgh
 
Benutzerbild von Mr_Braun
 
Registriert seit: Oct 2008
Ort: Ziegengehege
Beiträge: 2.648
Bedankt: 2.519
Mr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3207740 Respekt Punkte
Standard

Zitat:
Ajax [ˈeidʒæks] ist ein Apronym für die Wortfolge „Asynchronous JavaS***** and XML“. Es bezeichnet ein Konzept der asynchronen Datenübertragung zwischen einem Browser und dem Server. Dieses ermöglicht es, HTTP-Anfragen durchzuführen, während eine HTML-Seite angezeigt wird, und die Seite zu verändern, ohne sie komplett neu zu laden.
Ähnlich verhält es sich mit "Gefällt mir"-Buttons. Hier wird auch nicht die Seite komplett neugeladen, sondern nur ein Teil nachgeladen bzw. versendet.
Mr_Braun ist offline   Mit Zitat antworten
Ungelesen 05.01.12, 18:11   #4
Quesstor
Anfänger
 
Registriert seit: Apr 2009
Beiträge: 8
Bedankt: 3
Quesstor ist noch neu hier! | 0 Respekt Punkte
Standard

Also ich hab jetzt echt viele Tutorials durch aber es will einfach nicht so wie ich es will -.-
Der springende Punkt ist dass ich auf einer Seite mehrere posts hab die bewertet werden sollen können, dh ich kann nicht einfach ein ganzes Formular verschicken (was übrigens geklappt hat) sondern öfters ein oder zwei strings.
Ein Versuch darunter (der mir gefallen hat, weil ich einfach durch links voten lassen kann und mir damit das formular spare)

Die Html-datei:
...
<s***** type="text/javas*****" src="jquery-1.7.1.min.js"></s*****>
<s***** type="text/javas*****">
function vote(post,vote) {
params = "post=" + post + "&vote=" + vote;
new Ajax.Request('/save.php', {
postBody: params,
onLoading: alert('done')
});
}
</s*****>
...
<a href="#" onclick="vote("54166","pos"); return false;">Plus</a>
<a href="#" onclick="vote("54166","neg"); return false;">Minus</a>
...


und save.php:
<?php
$data=$_POST["post"]."--".$_POST["vote"];
$fp=fopen("save.d","w");
fputs($fp,$data);
fclose($fp);
?>

Problem: save.php arbeitet nichtmal durch.
also wenn ich in save.d etwas reingeschrieben habe wird das nicht gelöscht. (was ja passieren sollte, da ich save.d mit fopen("save.d","w") aufrufe)

kann es sein dass nicht jeder webserver solche ajax requests zulässt?
gibt es noch eine andere Möglichkeit einen String über POST einer php datei zukommen zu lassen ohne dass diese Seite aufgerufen wird?


-----
Problem gelöst mit:
html datei:
...
<s***** type="text/javas*****">
var request = false;

// Request senden
function setRequest(value) {
// Request erzeugen
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // Mozilla, Safari, Opera
} else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
} catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
} catch (e) {}
}
}

// überprüfen, ob Request erzeugt wurde
if (!request) {
alert("Kein Verbindung zum Vote-Server");
return false;
} else {
var url = "save.php";
// Request öffnen
request.open('post', url, true);
// Requestheader senden
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// Request senden
request.send('vote='+value);
// Request auswerten
request.onreadystatechange = interpretRequest;
}
}
</s*****>
...
<a href="javas*****:setRequest('p.11111')">Plus</a>
<a href="javas*****:setRequest('m.11111')">Plus</a>
...



und der php datei:
<?php
header('Content-Type: text/html; charset=utf-8'); // sorgt für die korrekte Kodierung
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); // ist mal wieder wichtig wegen IE
$data=$_POST["post"].time().$_POST["vote"];
$fp=fopen("save.d","w");
fputs($fp,$data);
fclose($fp);
?>



Danke für euer Bemühen
Quesstor ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr.


Sitemap

().