Checkbox nach Neuladen angezeigt lassen

mkoeni1

Erfahrenes Mitglied
Hallo Leute,

ich habe ein Problem und benötige Eure Hilfe.
Ich habe ein Formular auf einem Script das eine Checkbox zur HTTPS Seite ausgibt:
PHP:
<form id="anmelden" action="tutorials38.php" method="POST" name="loginform">
    <ul style="list-style: none;">
            <li><input name="user" type="text" value="Benutzer" size="15">

    <img src="http://www.tutorials.de/forum/images/1_pix_t.gif" height="1px" width="2px" alt="spacer">
            <input name="passwd" type="password" value="***" size="15">
    <input type="checkbox" name="ssl" value="" onclick="check(this);" >SSL
    <img src="http://www.tutorials.de/forum/images/1_pix_t.gif" height="1px" width="10px" alt="spacer">
     <input type="submit" name="sending" value="Login" >
       </li>
    </ul>
</form>

In der Javascript Funktion möchte ich gerne bei aktivieren der Checkbox SSL dass eine https anstatt einer http Seite geladen wird:
PHP:
  function check(elementID) {
    var formID = document.forms["loginform"];
        
         if(formID.elements[2].checked == true){
     alert ("Option SSL ist aktiviert!");
         location.href = "https://localhost/tutorials38.php";
// Button auf aktiviert setzen
        formID.elements[2].value = checked;
        }
        else {
             alert ("Option SSL ist deaktiviert!");
        }

        
   }

Die Seite wird neu geladen und die Checkbox wieder zurücksetzt. Wie kann ich erreichen, dass die Checkbox auf check/unchecked gesetzt wird.

Vielen Dank und Gruß
Matze
 
Hallo,

wenn deine Seite wie in deinem Fall neu geladen werden soll ohne das Formular abzuschicken, hast du dort meines Wissens nach die folgenden Möglichkeiten festzustellen ob auf der vorhergehenden Seite die checkbox ausgewählt war:
- du schickst eine GET variable mit die dir dies bestätigt
- du schreibst mit Javascript vorm neu Laden etwas in ein Cookie
- du setzt vorm neu Laden einen htttp Request ab, der dir die Information zb in eine Session schreibt.

Am wenigsten Umständlich wäre in deinem Fall vermutlich wenn du die Option mit der Get Variable wählst und einfach per Serversetigem Script die Checkbox checked oder eben nunchecked ausgibst.
 
Hi,

an 2 von 3 Vorschläge habe ich auch schon gedacht.
Das Problem bei deiner einfachsten Lösung ist ja, dass die Seite neu geladen werden muss.
Un dann bin ich wieder am Anfang meines Problems, die Checkbox auswählen die Seite neu laden weil aus http:// wird https:// und die Box ist unchecked.

Gruß Matze
 
Hi,

ich habs vielleicht etwas zu umständlich erklärt:
vielleicht is es mit einem ganz vereinfachten Beispiel verständlicher (PHP als Serverseitige Sprache):
PHP:
if(isset($_GET['checked']))
{
  echo '<input type="checkbox" name="ssl" value="" checked="checked" onclick="check(this);" >';
}
else
{
  echo '<input type="checkbox" name="ssl" value="" onclick="check(this);" >';
}
wenn die Varible mit geschickt wird gibst du die Box ausgewählt aus und sonst halt nicht. Vermutlich gibts statt der GET BVariable auch noch die Möglichkeit mit PHP das verwendete Protokoll herauszufinden (http oder https) ound du kannst anhand dieser Information entscheiden wie du die Checkbox ausgibst
 
Gut Ok so gehts danke.
Eigentlich wollte ich wissen, wie man ein Formular an zwei action schicken kann. Zum einen hab ich das
PHP:
https://localhost/tutorials38.php
mit gesetzter Checkbox

und zum anderen das:
PHP:
http://localhost/tutorials38.php
nicht gesetzte Checkbox

Ich habe bis jetzt folgendes:
PHP:
function formeval(f)
{
url='https://localhost/tutorials38.php';
loginform.action = open(url);
}

zu diesem Formular:
PHP:
<form id="anmelden" action="" method="POST" name="loginform" onsubmit="return formeval(this);">
    <ul style="list-style: none;">
            <li><input name="user" type="text" value="Benutzer" size="15">

    <img src="http://www.tutorials.de/forum/images/1_pix_t.gif" height="1px" width="2px" alt="spacer">
            <input name="passwd" type="password" value="***" size="15">
    <input type="checkbox" name="ssl" value="" onclick="check(this);" >SSL
    <img src="http://www.tutorials.de/forum/images/1_pix_t.gif" height="1px" width="10px" alt="spacer">
     <input type="submit" name="sending" value="Login" >
       </li>
    </ul>
</form>

Leider funktioniert es noch nicht ganz. ES öffnet sich ein neuer Tab mit dem Verweis. Gerne hätte ich die Seite selber neu geladen.

Gruß Matze
 
Zuletzt bearbeitet:
Hi,

in einem Vergleich ermittelst du das gewünschte Ziel, indem geprüft wird, ob die Checkbox gesetzt ist oder nicht. Die gefundene URL wird dem dem action-Attribut zugewiesen. Anschliessend wird das Formular mit submit() versendet.
Code:
function formeval(f){
  url = (f.ssl.checked)? "https://localhost/tutorials38.php" : "http://localhost/tutorials38.php";
  f.action = url;
  f.submit();
  return false;
}
Vielleicht hilft dir das weiter.

Ciao
Quaese
 

Neue Beiträge

Zurück