Ste: Button soll dynamische URL übergeben

Hallo,

ich konstruiere mit PHP einen Button, der bei seiner onclick Funktion eine bestimmte URL ansteuern soll. Diese URL wird in einer Funktion erzeugt:

<?php

echo '<p><input type="button" name="Submit" value="Markierte Kategorien aufrufen" onclick="return url()" ></p></form>';

?>

Die function url() sieht so aus:

<script type="text/javascript">

function url() {
adr="location='stat.php'";
return adr;}

</script>

Das ganze funktioniert leider nicht. Hat jemand eine Idee, woran das liegt, oder wie man das anders (besser) machen könnte?

Vielen Dank

  1. @@Ste:

    ich konstruiere mit PHP einen Button,

    PHP tut hier gar nichts zur Sache.

    <input type="button" name="Submit" value="Markierte Kategorien aufrufen" onclick="return url()" >

    function url() {
    adr="location='stat.php'";
    return adr;}

    Die Funktion url() liefert den String "location='stat.php'" zurück. Beim click-Event wird dann ebenfalls dieser String zurückgegeben (wohin auch immer). Das ist nicht das, was du willst.

    Du willst eher sowas:

    <input onclick="[code lang=javascript]url();">[/code]

    function url()  
    {  
      window.location = "stat.php";  
    }
    

    Für diese eine Codezeile brauchst du aber nicht extra eine Funktion; du kannst gleich

    <input onclick="[code lang=javascript]window.location = "stat.php";">[/code]

    notieren.

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. Hallo Gunnar,

      Für diese eine Codezeile brauchst du aber nicht extra eine Funktion; du kannst gleich

      <input onclick="[code lang=javascript]window.location = "stat.php";">[/code]

      möchtest Du nicht ein paar[1] Anführungszeichen eintauschen oder maskieren? *bg*

      Oberlehrerhafte Grüße

      Vinzenz

      [1] statt paar könnte man hier auch Paar schreiben.

      1. Mir ist schon klar, dass die Funktion, die ich gepostet habe (noch) nicht dynamisch ist. Das wollte ich machen, wenn der Rest läuft.
        Und mit

        <input onclick="window.location = "stat.php";">

        läufts - klar, aber damit ist es halt nicht dynamisch. Also nehmt an, die function url sieht so aus (vielleicht wirds dann klarer):

        function url() {

        if (document.form1.checkbox.checked==true) {
        adr="location='seite1.php'";
        }
        else
        {
        adr="location='seite2.php'";
        }
        return adr;}

        Die onclick="return url()" soll mir jetzt in die Anführungsstriche meine (dynamische) URL einsetzen. Das funktioniert nicht.
        Hoffe, jetzt ist es klarer.

        1. Hallo

          Mir ist schon klar, dass die Funktion, die ich gepostet habe (noch) nicht dynamisch ist. Das wollte ich machen, wenn der Rest läuft.

          was wir leider nicht wissen können, meine Glaskugel will derzeit nicht so recht. *g*

          <input onclick="window.location = "stat.php";">

          läufts - klar, aber damit ist es halt nicht dynamisch. Also nehmt an, die function url sieht so aus (vielleicht wirds dann klarer):

          function url() {

          if (document.form1.checkbox.checked==true) {
          adr="location='seite1.php'";
          }
          else
          {
          adr="location='seite2.php'";
          }
          return adr;}

          Die onclick="return url()" soll mir jetzt in die Anführungsstriche meine (dynamische) URL einsetzen. Das funktioniert nicht.

          Du möchtest bei onclick dem Objekt window.location den Rückgabewert Deiner Funktion url zuweisen. Wie das geht, hat Gunnar bereits gepostet, guck einfach nach oben, und steht auch auf der von mir verlinkten SELFHTML-Seite.

          Freundliche Grüße

          Vinzenz

        2. @@Ste:

          if (document.form1.checkbox.checked==true) {

          Warum immer wieder?

          adr="location='seite1.php'";
          }
          else
          {
          adr="location='seite2.php'";
          }
          return adr;}

          In diesem Zusammenhang interessant ist diese kürze Schreibweise.

          Hoffe, jetzt ist es klarer.

          Nein, mir ist unklar, warum du das bereits Gesagte nicht umsetzt.

          Entweder schreibst du <input onclick="[code lang=javascript]url();">[/code] und in der Funktion url() wird der Wert von 'window.loction' gesetzt

          oder du schreibst <input onclick="window.loction = [code lang=javascript]url();">[/code] und lässt die Funktion url() den URI (und nur diesen!) zurückgeben.

          Live long and prosper,
          Gunnar

          --
          „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
          1. @@Gunnar Bittersmann:

            [...] wird der Wert von 'window.loction' gesetzt

            'window.location'. Eh Vinzenz es merkt. ;-)

            <input onclick="window.loction = [...]">

            Blöder C&P-Fehler.

            Live long and prosper,
            Gunnar

            --
            „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
            1. Hallo Gunnar,

              [...] wird der Wert von 'window.loction' gesetzt
              'window.location'. Eh Vinzenz es merkt. ;-)

              wie war das noch?
              "Bis repetita non placent"?

              Einmal wegen Kinderkram mäkeln reicht, zweimal nervt. Außerdem merkst Du es ja selbst:

              Blöder C&P-Fehler.

              Freundliche Grüße

              Vinzenz

          2. Ok, danke Gunnar.
            Jetzt funktionierts mit dem window.location in der Funktion. Hattest Recht, hätte wohl etwas aufmerksamer deine erste Antwort lesen sollen.
            Vielen Dank nochmal für die schnelle Hilfe

        3. Hallo,

          vielleicht möchtest du in Abhängigkeit einer Checkbox das action-Attribut deines Formulars ändern?

          <input type="submit" onsubmit="return url(this)">

            
          function url(form) {  
            form.action = form.checkbox.checked ? "seite1.php" : "seite2.php";  
            return true;  
            }  
          
          

          Gruß plan_B

          --
               *®*´¯`·.¸¸.·
          1. vielleicht möchtest du in Abhängigkeit einer Checkbox das action-Attribut deines Formulars ändern?

            <input type="submit" onsubmit="return url(this)">

            natürlich falsch, entweder
             <form action="seite1.php"  onsubmit="url(this)" >

            oder
              <input type="submit" onclick="url(this.form)">

            function url(form) {
              form.action = form.checkbox.checked ? "seite1.php" : "seite2.php";
              return true;
              }

              
              
            Gruß plan\_B
            
            -- 
                 \*®\*´¯`·.¸¸.·
            
      2. @@Vinzenz Mai:

        möchtest Du nicht ein paar[1] Anführungszeichen eintauschen oder maskieren? *bg*

        Ja.

        Blöder C&P-Fehler.

        Live long and prosper,
        Gunnar

        --
        „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
  2. Hallo,

    ich konstruiere mit PHP einen Button, der bei seiner onclick Funktion eine bestimmte URL ansteuern soll. Diese URL wird in einer Funktion erzeugt:

    warum? Warum erzeugst Du einen Button, warum keinen Link.

    <?php
    echo '<p><input type="button" name="Submit" value="Markierte Kategorien aufrufen" onclick="return url()" ></p></form>';
    ?>

    Nett, das Ergebnis ist statisch. Könntest Du also gleich als HTML schreiben.

    Die function url() sieht so aus:
    <script type="text/javascript">

    function url() {
    adr="location='stat.php'";
    return adr;}

    </script>

    Diese Funktion liefert ebenfalls einen statischen Wert zurück. Also weg damit.

    Das ganze funktioniert leider nicht. Hat jemand eine Idee, woran das liegt, oder wie man das anders (besser) machen könnte?

    <a href="stat.php">Markierte Kategorien aufrufen</a>

    tut das, was der von Dir gezeigte Code bewirken sollte, soweit ich das verstehe. Falls Dein Code was anderes machen soll, dann hast Du Deinen Code zu stark zusammengestrichen und nicht den _relevanten_ Code gepostet.

    Möglicherweise hilft Dir auch einfach der entsprechende Abschnitt in SELFHTML weiter: location.

    Freundliche Grüße

    Vinzenz