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 05.01.12, 18:11   #1
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 21:57 Uhr.


Sitemap

().