Hallo Leute,
ich habe eine Formular.
Nachdem diese abgesendet wurde und ein Insert in die DB erfolgte, will ich eine JS-Funktion aufrufen, welche mich auf eine Seite weiterleitet, dabei brauche ich aber die insert_id.
Beispiel:
Ich erstelle eine neue Gruppe und will nach dem absenden sofort auf die Seite dieser Gruppe springen, bspw. groupdetails.php?group_id=3.
Header geht nicht, weil ich das framework7 verwende.
Also muss ich ja irgendwie nach dem erfolgreichen Insert die JS Funktion „jumptogroupid“ aufrufen und dabei die insert_id übertragen.
Hat einer eine Idee, was das realisiert werden kann?
bodo92
25. März 2015 um 14:27
2
Entweder das Framework7 ist Schrott oder du benutz es nicht richtig.
Kannst dir die last_insert_id doch einfach von PHP in einen JS Funktionsaufruf ausgeben lassen…
[php][/php]
Und die Funktion jumptogroup() definierst du Clientseitig Global!
Wenn ich die insert_id aber nur ein einziges mal brauche, muss diese dann auch noch global definiert werden?
So könnte ich mir dann die lastinsertid ausgeben lassen, richtig?
function jumptogroups(lastinsertid) {
alert(lastinsertid)
};
Entschuldigt meine blöde Fragerei, aber mit JS komme ich irgendwie noch nicht so richtig zu recht.
Bourbon:
Wenn ich die insert_id aber nur ein einziges mal brauche, muss diese dann auch noch global definiert werden?
So könnte ich mir dann die lastinsertid ausgeben lassen, richtig?
function jumptogroups(lastinsertid) {
alert(lastinsertid)
};
Entschuldigt meine blöde Fragerei, aber mit JS komme ich irgendwie noch nicht so richtig zu recht.
Geht es hier nicht im Prinzip um dasselbe?
https://www.html.de/threads/prompt-variable-via-js-an-php-datei-senden.54142/
Nein, hier will ich von PHP zu JS etwas übermitteln und in dem anderen Beispiel genau umgedreht. Vielleicht habe ich es noch nicht richtig beschrieben.
Sinn des Ganzen:
hier brauche ich die insert_id damit ich in die neu erstellte Gruppen springen kann.
Bourbon:
Nein, hier will ich von PHP zu JS etwas übermitteln und in dem anderen Beispiel genau umgedreht. Vielleicht habe ich es noch nicht richtig beschrieben.
Sinn des Ganzen:
hier brauche ich die insert_id damit ich in die neu erstellte Gruppen springen kann.
Na gut, dann poste ich eben das Script aus dem anderen Thread hier nochmal.
[PHP]echo $lastinsertid;[/PHP]
Code (text):
$$.post( 'somephpsite.php', {value: value}, function (lastinsertid) {
jumptogroup(lastinsertid);
});
Prinzipiell läuft es immer gleich:
JS schickt eine Request (Anfrage), PHP gibt eine Response (Antwort).
Natürlich wäre es besser JSON für die Kommunikation zu verwenden. zB:
{
'status': 'success',
'message': 'Group has been created.',
'data': {
'groupId': 5
}
}
Und wiedereinmal tausendfacher Dank!
Okay, also hier nochmal als Zusammenfassung:
JS Code
myApp.onPageInit('add_something', function(page){
$$('.prompt-test').on('click', function () {
myApp.prompt('insert here a value', 'titel',
function (something) {
myApp.alert('you inserted value ' + something + '€.', 'titel');
$$.post( 'add_something_insert.php', {something: something}, function (lastinsertid) {
alert(something);
});
},
function (something) {
}
);
});
});
Und hier der Code der PHP-Datei, die den Wert „something“ in die DB einträgt:
[PHP]
<?php
$something = $_POST["something"];
$something = $mysqli->real_escape_string($something);
$insert = "INSERT INTO something
(text)
VALUES ('$something')";
if($ergebnis = $mysqli->query($insert)) {
$lastinsertid = $mysqli->insert_id;
} else {
echo $mysqli->error;
}
$mysqli->close();
?>
[/PHP]
Ich habe noch keine richtige Ahnung von JS und da kommst du mit JSON daher und weckst mein Interesse
Was genau würde JSON denn besser machen?
Nachtrag:
die lastinsertid wird noch nicht zurückgegeben.
Der Code hier wirft mir einen leeren Alarm aus:
$$.post( 'add_something_insert.php', {something: something}, function (lastinsertid) {
alert(lastinsertid);
[/CODE
Du musst natürlich PHP-seitig auch was ausgeben:
[PHP]echo $lastinsertid;[/PHP]
Ach nur dann kann JS das also lesen? Interessant. Das dürfte viele zukünftige Probleme verhindern. Danke!
JS läuft clientseitig und kann daher nur das gleiche lesen, wie wenn du es direkt per URL über den Browser aufrufen würdest.
Danke für die Info.
Ich würde aber auch gerne nochmal auf JSON zurück kommen.
In wie weit würde JSON etwas verbessern?
Es macht es einfacher, komplexe Daten zwischen mehreren (unterschiedlichen) Anwendungen (JS/PHP in diesem Fall) zu übermitteln und sie direkt in die entsprechende Sprache zu übersetzen.
Beispiel:
[PHP]$response = array(
‚status‘ => ‚success‘,
‚data‘ => array(
‚groupId‘ => 5
)
);
echo json_encode($response);[/PHP]
JS:
$$.post( 'somephpsite.php', {value: value}, function (data) {
var obj = JSON.parse(data);
if(obj.status == 'success') {
alert(obj.data.groupId); // 5
}
});
Okay, an sich sieht JSON ja gar nicht so schwer aus.
Man bildet ja nur ein Array und macht daraus ein String, oder?
Aber warum machst du noch ein 2. Array (data)?
bodo92
27. März 2015 um 17:22
14
Das ist ein simples Mehrdimensionales Array!?
In JavaScript würden aus den beiden Assoziativen Arrays zwei ineinander liegende Objekte werden.
Wozu man das braucht?
[INDENT]Um auf die einzelnen Werte in data per JS zuzugreifen.
Wie sollte man sonst die Daten anständig gruppieren?[/INDENT]
Und wenn man Google mit JSON füttert kommt als erstes ein sehr Informativer Wikipedia Artikel, indem alles sehr leicht verständlich beschrieben wird!
http://de.wikipedia.org/wiki/JavaScript_Object_Notation
Ich bin auch Anfänger in der Programmierung, aber man sollte sich die Stichworten die man in im Forum erhält schon mal genauer ansehen und versuchen zu verstehen. Erst wenn man es auch nach ein paar Versuchen nicht kapiert sollte man konkret nachfragen.
Ist wirklich nicht böse gemeint
nookie
27. März 2015 um 17:27
15
bodo92:
Das ist ein simples Mehrdimensionales Array!?
In JavaScript würden aus den beiden Assoziativen Arrays zwei ineinander liegende Objekte werden.
Wozu man das braucht?
[INDENT]Um auf die einzelnen Werte in data per JS zuzugreifen.
Wie sollte man sonst die Daten anständig gruppieren?[/INDENT]
Und wenn man Google mit JSON füttert kommt als erstes ein sehr Informativer Wikipedia Artikel, indem alles sehr leicht verständlich beschrieben wird!
http://de.wikipedia.org/wiki/JavaScript_Object_Notation
Ich bin auch Anfänger in der Programmierung, aber man sollte sich die Stichworten die man in im Forum erhält schon mal genauer ansehen und versuchen zu verstehen. Erst wenn man es auch nach ein paar Versuchen nicht kapiert sollte man konkret nachfragen.
Ist wirklich nicht böse gemeint
@Bourbon hör nicht auf Ihn! Er programmiert seit 2010 professionell bei Microsoft. Sorry musste grad sein.
bodo92
27. März 2015 um 17:37
16
Nein ich bin doch zu Google gewechselt :D:p
Aber das stimmt, vor kurzem warst du noch der Anfänger, der des öfteren Fragen gestellt hat
Ja die Frage mit JSON war einfach mal auf die Schnelle aus der Hüfte geschossen.
Den Wiki-Artikel habe ich mir jetzt mal angeschaut und muss schon sagen, dass der wirklich gut geschrieben ist.
An sich ist JSON auch relativ einfach.