Javascript Array in DB eintragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Javascript Array in DB eintragen

    Ich würde gerne ein Javascript Array in eine Datenbank eintragen. Per $_GET funktioniert das auch einwandfrei, leider ist mein Array jedoch so lang, dass ich die zulässige url Länge knacke :( Gibt es die Möglichkeit das Array per $_POST zu verschicken?

    Mein Ansatz war wie folgt:

    Quellcode

    1. function senddata(){ //wird onclick ausgeführt
    2. new Ajax.Request('u_tage_entry.php',{
    3. method:'post',
    4. parameters : {data : Object.toJSON(d_arr)},
    5. onSuccess: function(transport) {
    6. var success = transport.responseText;
    7. alert(success);
    8. if(success != ""){
    9. alert("no vars");
    10. }
    11. },
    12. onFailure: function(){
    13. alert("Fehler");
    14. }
    15. });
    16. document.getElementById("ausgabe").innerHTML = Object.toJSON(d_arr); //das wird richtig ausgegeben
    17. }
    Alles anzeigen


    Quellcode

    1. if($_POST['data']!=""){
    2. $data = $_POST['data'];
    3. }else{
    4. $data="Kein Wert vorhanden";
    5. }
    6. echo "DATA".$data;
  • d_arr ist eine einfache zahlenreihe (ca. 600 zahlen durch komma getrennt), also sagen wir mal ein string mit ca 1000 zeichen. eigentlich geht es mir nur darum, wie ich diese javascript variable an eine php datei übergeben kann und zwar per post. ich bräuchte also am besten eine javascript funktion, welche ich onclick aufrufen kann und welche die Variable dann per post an die php datei per post übergibt. so dass ich sie über $_POST['d_arr'] in die Datenbank eintragen kann. json ist ja lediglich für das decoden von arrays zuständig, das bringt mir nichts. mein problem liegt viel mehr darin, dass ich die variable an den server gesendet bekomme und sie nicht nur lokal nutzen kann ;)
  • ok, dann gebe ich dir mal eine simple AJAX Funktion, die ganz ohne Prototype Framework arbeitet.

    Quellcode

    1. function ajaxPost(url, postData, callback) {
    2. var req;
    3. try {
    4. req = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
    5. } catch (e) {
    6. // browser does not have ajax support
    7. }
    8. req.onreadystatechange = typeof callback == 'function' ? callback : function() {
    9. if (req.readyState == 4 && req.status == 200) {
    10. if(typeof callback == 'string') callback = document.getElementById(callback);
    11. if(callback) callback.innerHTML = req.responseText;
    12. }
    13. };
    14. req.open('POST', url, true);
    15. req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    16. req.send(postData);
    17. return false;
    18. }
    Alles anzeigen

    Quelle: easy-coding.de/wiki/html-ajax-…x-und-ohne.html#headline7

    Aufruf:

    Quellcode

    1. <script type="text/javascript">
    2. var sendData1 = "1,2,3";
    3. </script>
    4. <a href="u_tage_entry.php" onclick="return ajaxPost(this.href, sendData1)"></a>
  • Hab jetzt endlich ne Lösung gefunden. Eine harte Geburt aber eigentlich total easy:
    JAVASCRIPT ARRAY IN PHP POST:

    DATEI 1:

    <script type="text/javascript">
    var sendData1 = "1,2,3"; //Array in String umwandeln nicht vergessen ;)
    function sendPost(){
    document.forms[0].testa.value=sendData1;
    document.forms[0].submit();
    }
    </script>
    <form name="hiddenform" action="x.php" method="post">
    <input type="hidden" name="testa" value='1234' /></input>
    </form>
    <div onclick='sendPost()'>CLICK</div>


    DATEI x.php:

    <?php
    echo "<pre>";
    var_dump($_POST);
    echo "</pre>";
    ?>