Ankündigung

Einklappen
Keine Ankündigung bisher.

$_POST überladen und nutzen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • $_POST überladen und nutzen

    Hallo an alle,

    bitte nicht gleich hauen aber ich versuche mich gerade an jquery

    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            
            <div id="target">&nbsp;</div>
            
            <title>Fill Select using TSQL, PHP, JQUERY AJAX</title>
            
            <script src="jquery-1.11.1.min.js"></script>
            
            <script>
            $(document).ready(function(){
                $('#cnt').change(function(){
                    var code = $(this).val();
        
                    alert('TEST Personalnummer: ' + code);

                    $.post('index.php',
                        {
                            test: code
                        },
                        function(data) {
                        $('#target').html(data);
                        }
                        );
                    }); 
                });

    $(document).ready(function() {

    });
    </script>

    </head>
        <body>
            <form method="POST">
                <select name="cnt" id="cnt">
                    <?php
                        
    include 'conn.php';
                        
    $SQL "SELECT * FROM [dbo].[Personaldaten]";
                        
    $query sqlsrv_query($conn,$SQL);
                        while (
    $row sqlsrv_fetch_array($query))
                            {
                                
    $res "<option ";
                                
    $res .= "value=".$row['Personalnummer']."'>";
                                
    $res .= $row['Personalnummer'];
                                
    $res .= '</option>';
                                echo 
    $res;                
                            }
                    
    ?>
                    </select>
        </body>
    </html>
    ich hole also Daten aus einer Datenbank, um genau zu sein Personaldaten. Diese lade ich in ein DropDown Menu. Alles gut soweit .Wenn ich nun auf das Change im DropDown Menu reagiere soll er den neuen ausgewählten Wert in die $_Post setzen und die Seite erneut aufrufen. Die Seite wird zwar noch nicht neu aufgerufen (Source fehlt) aber er zeigt mir jetzt schon 2mal das DropDown-Menu an. Wieso? was mach ich verkehrt?

  • #2
    Du hast im head Bereich ein div mit id=target, dieses füllst Du mit dem Ergebnis deiner jquery POST Geschichte. Somit steht das dann zweimal auf Deiner Seite.

    Kommentar


    • #3
      danke für die Hilfe! klappt jetzt auch!
      Nun habe ich aber das Problem das zwar an sich meine $_Post geändert hat (sagt zumindestens das Alert) aber wenn ich ein Reload der Seite mache habe ich wieder den alten Wert drin stehen.
      So sollte es ja nun extra nicht sein!*g* ein einfacher reload ist also nicht richtig was kann ich aber denn nun tuen?
      Alle anderen Ausgaben auf der Seite beruhen auf SQL Abfragen die sich wiederum auf den Parameter (also der Variable) &_Post beziehen.

      Kommentar


      • #4
        Dann wirst Du nicht an sessions vorbeikommen. Lies Dich da mal ein, setze eine session Variable mit der Personalnummer und frage diese vor der Ausgabe ab.

        Kommentar


        • #5
          session id möchte ich nicht wirklich nutzen dann müsste ich ja alles umschreiben und was noch schlimmer ist cockies sind nicht erlaubt gibt es nicht noch eine andere lösung? kann ich vielleicht meine SQL abfragen wieder anstoßen damit die nur die ausgaben neu laden und nicht die ganze seite?!

          Kommentar


          • #6
            ich habe gerade noch eine Idee bekommen vielleicht wäre dies ja eine Lösung. Was wäre wenn ich den Wert mit $POST oder $ GET mir übergeben lassen (besser POST dann ist die URL "leer") und schreib dies in eine Variable und dazu noch eine Zählervariable. mein JavaScript ändert dann POST und die Zählervariable. Eine Prüfung findet raus welchen Wert der Zähler hat und wenn dieser zu klein ist dann schreibt er das ungeänderte Post in die Variable und wenn Wert zu groß dann nimmt er den großen wert.

            sowas könnte doch gehen oder?

            Kommentar


            • #7
              Du hast doch ein reload Problem...

              Kommentar


              • #8
                das Problem ist der Sourcecode für Session ich habe ein eine For-Schleife die durchwandert wird. für jedes neue i++ wird ein neuer Link angelegt der auch den Wert $i dann an die nächste Seite übergibt(per POST oder GET) wie soll ich das in die Session schreiben ohne das ganze Skript umzuschreiben. die Schleife hatte ich ja extra um eben nicht jeden Link handisch setzen zu müssen

                Kommentar


                • #9
                  Werter tutter, das reload Problem bekommst Du ohne Session nicht gelöst. Deine restlichen Ausführungen werden nur die Nachkommen von Frau Marie-Anne Lenormand deuten können....

                  Kommentar


                  • #10
                    ja musste los! ich schreib dir morgen mal die Syntax es sei denn mir fällt heute abend noch eine Losung ein danke dir schon mal für deine mühen

                    Kommentar


                    • #11
                      so nach einen anstrengenden Tag mit den Skripten qualmt mir zwar der Kopf aber ich habe auch einige Fehler gefunden!
                      vorallem einen gravierenden Logikfehler! Ich erhalte via Post eine Parkplatznummer. Diesem Parkplatz kann eine Personalnummer zugeordnet sein. Mit meiner Parkplatznummer schau ich in die Datenbank wer Anspruch auf den Parkplatz hat. Die Rückgabe ist ein Feld mit der Bezeichnung $row['Personalnummer'] <<< und genau das gilt es jetzt zu überladen mit den neuen Wert. Dieses Feld erhält einen neuen Wert aus einem Auswahlmenu welches alle bekannten Personalnummer enthält. Wenn also eine neue Personalnummer ausgewählt wird soll diese in $row['Personalnummer'] geschrieben werden und anschließend die Seite neu geladen werden!

                      ich bekomme es bloß einfach nicht hin die $row['Personalnummer'] zu überschreiben.

                      Code:
                      		<script src="jquery-1.11.1.min.js"></script>
                      		
                      		<script>
                      		$(document).ready(function(){
                      			$('#Pesonalnummerauswahl').change(function(){
                      				var code = $(this).val();
                      				alert('TEST Personalnummer: ' + code);
                      					function(data) {
                      					$('$Personaldaten['Personalnummer']').html(data);
                      					}
                      				location.reload(true);		
                      				}); 
                      			});
                      </script>

                      Kommentar


                      • #12
                        location.reload ruft die gleiche Seite halt nochmal auf, d.h. Du kannst darin rummanschen wie Du willst, die Änderungen sind weg.

                        Hast Du wirklich eine id namens "$Personaldaten['Personalnummer']" oder wirfst Du alles durcheinander.

                        Kommentar


                        • #13
                          stimmt ich ändere ja mit jquery nur auf dem Client und nicht auf dem Server. da sind wir also wieder bei der lösung mit session!
                          ich schau mir das mal morgen an ob ich nicht mit session die Sache lösen kann. in meinem Ausgangsskript, welches den Wert über die $_POST Methode an die nächste Seite liefert, arbeite ich mit Submit Button damit sollte sich der Wert in session "reinschreiben" lassen. oder?

                          somit könnte ich dann auf der Seite, wo ich jquery einsetzen will, die Session verbiegen und durch einen Reloade der ganzen Seite meine SQL Skripte anwerfen.

                          Soweit alles richtig verstanden?

                          Kommentar


                          • #14
                            so nun noch mal - das muss doch laufen !

                            Details.php:
                            // session ist eingebunden klappt auch
                            PHP-Code:
                                    <script src="jquery-1.11.1.min.js"></script>
                                    
                                    <script>
                                    alert('Hilfe TEST');
                                    $(document).ready(function(){
                                        $('#Pesonalnummerauswahl').change(function(){
                                            var code = $(this).val();
                                
                                            alert('TEST Personalnummer: ' + code);
                                            
                                            
                                                
                                            $.POST('details.php',{"option": src});
                                                /*
                                                {
                                                    test: code
                                                },
                                                
                                                */
                                                /*
                                                function(data) {
                                                $('$Personaldaten['Personalnummer']').html(data);
                                                }
                                                
                                                
                                                //);
                                                */
                                            
                                            location.reload(true);    
                                                
                                            }); 
                                        });
                            </script>

                            <select name="Personalnummerauswahl" id="Personalnummerauswahl"> 
                            <option> value= 1 </option>
                            <option> value= 2 </option>
                            <option> value= 3 </option>
                            </select> 
                            wenn nun im Select Menu Personalnummerauswahl etwas geändert wird bekommt das jquery auch mit und kann mir den Wert ausgeben aber wie bekomme ich jetzt die Auswahl in $_SESSION['personalnummer']???

                            Ein vergleichbares Vorgehen http://stackoverflow.com/questions/6...r-using-jquery aber damit komme ich auch nicht klar!

                            Kommentar

                            Lädt...
                            X