radiobutton identiviziren ?

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

  • radiobutton identiviziren ?

    Hallo,

    ich habe hier eine Abfrage der User die in der Datenbank stehen.
    Diese werde auch wunderbar aufgelistet und alle Daten stimmen
    mit den Daten aus der Datenbank überein. Wenn ich nun auf einen
    radio button gehe und dann auf senden stellt der Wert sich auch um.
    Aber warum geht das nur mit dem Letzten User der Datenbank?

    Habe mal einen Kommentar dort gemacht wo ich glaube
    das dort der Fehler steckt.

    PHP-Code:
    <form action="sichere_seite1.php" method="REQUEST">
    <?php

      
    echo '<pre>';
    print_r ($_REQUEST);
    echo 
    '</pre>'

        echo
    '<table width="200" bgcolor="#000000" border="0"
    cellpadding="6" cellspacing="1" align="center">'
    ;
        echo
    '<tr>';
        echo
    '<td bgcolor="#e7e7e7" align="center" colspan="15">';
        echo
    '<b>User Freischalten oder Sperren</b>';
        echo
    '</td>';
        echo
    '</tr>';
        echo
    '<tr>';
        echo
    '<td width="40" bgcolor="#e7e7e7">Nr</td>';
        echo
    '<td width="40" bgcolor="#e7e7e7">User</td>';
        echo
    '<td width="40" bgcolor="#e7e7e7">id</td>';
        echo
    '<td width="40"bgcolor="#e7e7e7">Aktiv</td>';
        echo
    '<td width="40"bgcolor="#e7e7e7">Bearbeitung</td>';
        echo
    '</tr>';

    $adminquery = @mysql_query("SELECT id, user, nname, aktiv FROM users")
    or print(
    'Kann die bisherigen Benutzer nicht ausw&auml;hlen!');    

        
    $counter 1;    
        
        
    $v1 $_POST['aktiv'];
        
            while(
    $line = @mysql_fetch_object($adminquery)) {
            

            echo 
    '<tr>';
            echo 
    '<td width="40" bgcolor="#ffffff" align="right">'.$counter.'</td>';
            echo 
    '<td width="40" bgcolor="#ffffff">'.$line->nname.'</td>';
            echo 
    '<td width="40" bgcolor="#ffffff">'.$line->id.'</td>';
            echo 
    '<td width="40" bgcolor="#ffffff">'.$line->aktiv.'</td>';

            
    $sql"UPDATE users SET aktiv='".$_REQUEST['v1']."' where id='".$_REQUEST['id']."'";
            
    mysql_query($sql);
            echo 
    $sql;

            echo 
    '<td width="40" bgcolor="#ffffff">';
            echo 
    '<input type="hidden" name="Name" value= "'.$line->nname.'">';
            echo 
    '<input type="hidden" name="id" value= "'.$line->id.'">';
            echo 
    '<input type="hidden" name="aktiv" value= "'.$line->aktiv.'">';
            
        
        
    $checked0=($line->aktiv=='0')?'checked':'';
        
    $checked1=($line->aktiv!='0')?'checked':'';
                
    // Ich glaube das ich den radio button noch eine ip zuweisen muß!
    // Aber wie mache ich das blos?
            
    echo '<input type=radio name=v1 value=0  $checked0 >Deaktivieren<br>';
            echo 
    '<input type=radio name=v1 value=1  $checked1 >Aktivieren';
            echo 
    '<input type="submit" name="submit" value="Absenden" class="button"></td>';

        
    $counter++;

    }
            echo
    '</table>';
    ?>
    </form>
    Ich hab schon gegoogelt und hier im Forum nachgeschaut
    aber nichts gefunden womit ich die radios mit der id
    identiviziren kann.

  • #2
    Re: radiobutton identiviziren ?

    Wenn du allen Radiobuttons den gleichen Namen gibst, dann ist klar, dass du nur einen einzigen auswählen kannst.

    Du willst also nur denen, die auch wirklich zu einer Gruppe gehören sollen, den gleichen Namen geben.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hiermit unterscheide ich die radios ja:

      PHP-Code:
          $checked0=($line->aktiv=='0')?'checked':'';
          
      $checked1=($line->aktiv!='0')?'checked':''
      Was ich möchte ist den radios einer id zuordnen.

      (
      PHP-Code:
      $line->id 
      )

      Kommentar


      • #4
        Aber warum geht das nur mit dem Letzten User der Datenbank?
        Ist ja auch logisch, deine Formularfelder haben für jeden Datensatz den gleichen Namen. Und bei einem Submit wird halt das letzte (gleichnamige) Formularfeld genommen und der enstprechende Datensatz aktualisiert. Du musst schon für jeden Datensatz verschiedene Formularfeldnamen verwenden.

        z.B.
        PHP-Code:
        echo '<input type="hidden" name="id['.$line->id.']" value=" '.$line->id.'">'
        Das halt dann entsprechend analog mit den anderen Feldern:
        PHP-Code:
        echo '<input type="radio" name="v1['.$line->id.']" value="0"  '.$checked0.' >Deaktivieren<br>'
        Und die DB-Aktualisierung solltest du nicht innerhalb der Schleife durchführen, sondern außerhalb - bzw. zu Beginn der Seite. Beispiel:
        PHP-Code:
        if(isset($_POST["submit"])){
          ...

        Darin gehst du dann den Array $_POST["v1"] durch und führst die entsprechenden SQL-Updates durch. Das ist jetzt dein Part...
        Zuletzt geändert von eintrachtemil; 03.07.2006, 12:34.
        Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

        Kommentar


        • #5
          Original geschrieben von phpmännchen
          Hiermit unterscheide ich die radios ja:
          Nein, tust du nicht.

          In deinem HTML-Code haben alle den selben Namen, und das bedeutet, dass sie alle zur selben Gruppe gehören.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            ja jetzt hab ichs gescheckt! Macht auch sinn.
            Ja hast recht, danke.

            Kommentar


            • #7
              Oh man,
              jetzt gehts eintragen nicht mehr!
              Wie kommt das?

              habe es mit isset am Anfang probiert.
              Geht aber irgendwie nicht!

              PHP-Code:
              $adminquery = @mysql_query("SELECT id, user, nname, aktiv FROM users")
              or print(
              'Kann die bisherigen Benutzer nicht ausw&auml;hlen!');    

                  
              $counter 1;    
                  

                      while(
              $line = @mysql_fetch_object($adminquery)) {
                      

                      echo 
              '<tr>';
                      echo 
              '<td width="40" bgcolor="#ffffff" align="right">'.$counter.'</td>';
                      echo 
              '<td width="40" bgcolor="#ffffff">'.$line->nname.'</td>';
                      echo 
              '<td width="40" bgcolor="#ffffff">'.$line->id.'</td>';
                      echo 
              '<td width="40" bgcolor="#ffffff">'.$line->aktiv.'</td>';

                       
              $sql"UPDATE users SET  aktiv='".$_POST['v1']."' where id='".$_POST['id']."'";
                      
              mysql_query($sql);
                      echo 
              $sql
                      
                      echo 
              '<td width="40" bgcolor="#ffffff">';
                      echo 
              '<input type="hidden" name="nname['.$line->nname.']" value=" '.$line->nname.'">';
                      echo 
              '<input type="hidden" name="id['.$line->id.']" value=" '.$line->id.'">';
                      echo 
              '<input type="hidden" name="aktiv['.$line->aktiv.']" value=" '.$line->aktiv.'">';

                  
                  
                      
              $checked0=($line->aktiv=='0')?'checked':'';
                      
              $checked1=($line->aktiv!='0')?'checked':'';

                          
                      echo 
              '<input type="radio" name="v1['.$line->id.']" value="0"  '.$checked0.' >Deaktivieren<br>';
                      echo 
              '<input type="radio" name="v1['.$line->id.']" value="1"  '.$checked1.' >Aktivieren<br>';
                      echo 
              '<input type="submit" name="submit" value="Absenden" class="button"></td>';
                      
                  
              $counter++;

              }
                      echo
              '</table>';
              ?>
              </form> 

              Kommentar


              • #8
                "Geht nicht" ist keine Fehlerbeschreibung.

                Kontrollausgabe Query-String?
                mysql_error()?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Das hier giebt er mir aus!

                  Array
                  (
                  [nname] => Array
                  (
                  [Bandak] => Bandak
                  [1] => 1
                  )

                  [id] => Array
                  (
                  [1] => 1
                  [10] => 10
                  )

                  [aktiv] => Array
                  (
                  [1] => 1
                  )

                  [v1] => Array
                  (
                  [1] => 1
                  [10] => 0
                  )

                  [submit] => Absenden
                  [PHPSESSID] => 43a8b267baef61b463597f8a234d2696
                  )

                  die Daten werden auch alle in der Tabelle angezeigt.
                  Nur das Übertragen an die Datenbank geht nicht mehr!

                  Kommentar


                  • #10
                    Re: radiobutton identiviziren ?

                    Original geschrieben von phpmännchen
                    PHP-Code:
                        $checked0=(line->aktiv=='0')?'checked':'';
                        
                    $checked1=(line->aktiv!='0')?'checked':''
                    Versuchst Du mal diese zeilen wegzulassen, ich denke darin steckt der Fehler.

                    Kommentar


                    • #11
                      Ok, werde ich mal machen..

                      Danke.... :-)

                      Ne, geht nicht.

                      Die zeilen waren schon gut!
                      Sie halten die Radios dann an der Stelle wo Sie sein sollen.


                      Hm......

                      Das is echt komisch
                      Zuletzt geändert von phpmännchen; 03.07.2006, 14:35.

                      Kommentar


                      • #12
                        Original geschrieben von phpmännchen
                        Das hier giebt er mir aus!
                        Wie du daran sieht, ist das Element mit dem Index 'v1' selbst wiederum ein Array - und das einfach so in den Querystring einsetzen zu wollen, ist natürlich Unsinn.

                        (Und nach der Ausgabe dieses Querystrings hatte ich dich übrigens auch explizit gefragt, daran hätte man das auch sehr schön sehen können, dass da was nicht stimmen kann. Also bitte nicht immer die Antworten nur teilweise lesen!)
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Ja das stimmt,

                          habs nicht ganz gelesen!
                          Aber verstehen was Du da schreibst,
                          kann ichs beim besten willen im moment nicht .

                          Ich stehe im moment total auf dem Schlauch

                          Kommentar


                          • #14
                            Dann könnte es hilfreich sein, wenn du die bisher unbeantwortete Rückfrage erst mal beantwortest.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              In deiner ersten Formularvariante hast du als Rückgabewert deiner Radiobuttons einen String erhalten:
                              PHP-Code:
                              $_REQUEST['v1'
                              Jetzt ist aber
                              PHP-Code:
                              $_REQUEST['v1'
                              kein String mehr, sondern ein Array. Diesen musst du folgerichtig nun durchgehen und nacheinander mit den entsprechenden Schlüsseln und Werte die SQL-Updates durchführen.

                              Das müsste doch mal reichen, oder?
                              Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

                              Kommentar

                              Lädt...
                              X