PHP Funktion umschreiben in eine JS Funktion
Stefan
- javascript
Hallöchen wiedereinmal!!
..und wiedereinmal komme ich an diesem *piep* JS nicht weiter. In PHP ist das ganze einfacher!!
..folgender Sachverhalt: Ich habe eine JS Funktion die über AJAX (Jquery) ein PHP File aufruft welches ein paar Zeilen Code hat. Nun will ich aber diese Wege umgehen. Ich würde gerne das gleich die JS Funktion das ganze bewerkstelligt ohne ein PHP File dafür aufzurufen. Nur kann ich den PHP Code aus dem PHP File nicht in JS umschreiben.
Ich habe es wirklich versucht nur leider pack ich das nicht!! Kann mir bitte jemand helfen?!
meine derzeitige JS/PHP Lösung:
function saveTime (date, hour, outputTime) [
$.post("session_write.php", { dateHour: date + '-' + hour + '-' + outputTime} );
};
und die session_write.php beeinhaltet folgenden Code:
<?php
session_start();
if (!isset($_SESSION['stored'])) {
$_SESSION['stored'] = array($_POST['dateHour']);
} else {
if (in_array($_POST['dateHour'], $_SESSION['stored'])) {
foreach ($_SESSION['stored'] as $key => $value) {
if ($value == $_POST['dateHour']) unset($_SESSION['stored'][$key]);
}
} else {
array_push($_SESSION['stored'], $_POST['dateHour']);
}
}
?>
und nun will ich das dieser PHP Code in JS (gleichwertigen...) umgeschrieben wird.
meine Gehversuche waren so:
function saveTime (date, hour, outputTime) {
if (document.cookie) {
if (jQuery.inArray(date + '-' + hour + '-' + outputTime, document.cookie)) {
//hier fehlt noch die foreach schleife sowie das entfernen des überinstimmenden teiles des cookies.
} else {
document.cookie = document.cookie.push(date + '-' + hour + '-' + outputTime);
}
} else {
document.cookie = new Array(date + '-' + hour + '-' + outputTime);
}
};
aber dieser Code funktioniert hinten und vorne nicht und ein Teil fehlt noch komplett. Ist jemand aus dieser Community der Sprache JS so mächtig dass er diesen Code richtigstellen und komplettieren kann?
lg Stefan
Hi,
Ich habe es wirklich versucht nur leider pack ich das nicht!! Kann mir bitte jemand helfen?!
Du könntes der Einfachheit halber wenigstens mal beschreiben, was genau das Script leisten soll. Ansonsten kannst Du z.B. bei diesem cookie test checken, wie man mit js cookies setzen und wieder auslesen kann.
document.cookie.push(date + '-' + hour + '-' + outputTime);
das ist Phantasiecode, das Cookie ist ein String und kein Array.
Gruesse, Joachim
Hi,
..danke erstmal!
Also das Script soll Werte in ein Cookie (vormals bei PHP war es halt in eine Session) schreiben. Aber mit einigen Bedingungen. Wenn bisher gar kein Cookie existiert soll es eines erzeugen. Wenn bereits ein Cookie besteht soll es dieses entweder um den Wert erweitern sofern dieser Wert nicht bereits im Cookie ist. Ist dieser Wert jedoch bereits im Cookie soll er nun entfernt werden.
Das alles basiert auf einer Tabelle mit Zellen die Clickbar sind. Bei einem Click soll die ZellenID in dem Cookie gespeichert werden. Beim Anklicken einer weiteren Zelle soll diese ZellenID auch an das Cookie angehängt werden. Beim Anklicken einer Zelle die bereits im Cookie vorhanden ist soll diese ZellenID aus dem Cookie entfernt werden. Die anderen ZellenID's sollen dann aber natürlich drinnen bleiben
lg stefan
Hallo,
Helferscripte zum Auslesen, Setzen und Löschen von Cookies findest du z.B. hier:
http://www.jstruebig.de/web/javascript/source/cookie.html
http://www.dustindiaz.com/top-ten-javascript/
Mathias
Hallo,
Helferscripte zum Auslesen, Setzen und Löschen von Cookies findest du z.B. hier:
http://www.jstruebig.de/web/javascript/source/cookie.html
http://www.dustindiaz.com/top-ten-javascript/Mathias
hmm danke dir erstmals. jedoch bringt mich das leider nicht weiter!
die cookies ja nur mittel zum zweck. ich brauche aber die ganze fkt.
disen php code
<?php
session_start();
if (!isset($_SESSION['stored'])) {
$_SESSION['stored'] = array($_POST['dateHour']);
} else {
if (in_array($_POST['dateHour'], $_SESSION['stored'])) {
foreach ($_SESSION['stored'] as $key => $value) {
if ($value == $_POST['dateHour']) unset($_SESSION['stored'][$key]);
}
} else {
array_push($_SESSION['stored'], $_POST['dateHour']);
}
}
?>
in js. sind ungefähr 11 zeilen code. ich vermag es leider nicht ihn zu transkrepieren. aber einer von euch findigen js schreibern wird das doch können?!?!?
lg stefan
Hi,
in js. sind ungefähr 11 zeilen code. ich vermag es leider nicht ihn zu transkrepieren.
Na na, krepieren soll ja hier auch niemand.
aber einer von euch findigen js schreibern wird das doch können?!?!?
Vermutlich schon.
Der Anfang besteht darin, zu analysieren, was das PHP-Script macht - das hast du in deinem zweiten Posting im Thread ja auch schon gemacht.
Und dann wäre zu überlegen, wie man das analog in JavaScript umsetzen kann.
Dabei helfen dir die Funktionen, die Mathias verlinkt hat.
Dann ist nur noch ein wenig Logik drumherum zu implementieren - wie man bereits enthaltene Werte erkennt, wie man den Zustand "Wert vorhanden" zu "Wert entfernt" umdreht un vice versa ...
Stringfunktionen und möglicherweise RegExp sind dabei behilflich.
MfG ChrisB
Hi,
»» in js. sind ungefähr 11 zeilen code. ich vermag es leider nicht ihn zu transkrepieren.
Na na, krepieren soll ja hier auch niemand.
»» aber einer von euch findigen js schreibern wird das doch können?!?!?
Vermutlich schon.
Der Anfang besteht darin, zu analysieren, was das PHP-Script macht - das hast du in deinem zweiten Posting im Thread ja auch schon gemacht.
Und dann wäre zu überlegen, wie man das analog in JavaScript umsetzen kann.
Dabei helfen dir die Funktionen, die Mathias verlinkt hat.
Dann ist nur noch ein wenig Logik drumherum zu implementieren - wie man bereits enthaltene Werte erkennt, wie man den Zustand "Wert vorhanden" zu "Wert entfernt" umdreht un vice versa ...
Stringfunktionen und möglicherweise RegExp sind dabei behilflich.MfG ChrisB
auch dir danke!! wie gesagt habe es ja versucht wie man meinem ersten posting entnehmen kann. die logik denke ich habe ich auch eingebaut aber mir fehlen die nötigen fkt die es in php gibt bzw die genauen umgangsformen in js. wenn du das kannst bitte ich dich. mit regex bin ich schon gar nicht vertraut.
würde gerne da weiter kommen! ;-)
lg stefan