array und gesetzte werte

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

  • array und gesetzte werte

    hallo,
    habe ein kleines problem mit arrays, habe die suche und dokus bemüht finde aber keine lösung, vielleicht ihr...

    folgendes: von einem html-formular werden durch mehrere <select name="autor_id[]"> auswahllisten werte an eine php-datei gesendet.
    nun möchte ich nur die gesetzten werte zählen, das funzt aber leider nicht, es wird immer die komplette anzahl, auch der nicht gesetzten werte angezeigt:

    PHP-Code:
    //    POST-Variable in 'normales' Array umwandeln.
        
    $autor_id=$_POST['autor_id'];
        
    $counter=count($autor_id);
        echo 
    $counter."<br>";

    echo 
    "<pre>";
    print_r($_POST['autor_id']);
    echo 
    "</pre>";


    folgendes wird ausgegeben bei z.beinem gesetzten wert:


    6

    Array
    (
        [
    0] => 
        [
    1] => 
        [
    2] => 
        [
    3] => 
        [
    4] => 
        [
    5] => 1

    ... auch meine versuche mit einer for schleife und !empty führen zu ordentlichem keinem ergebnis, ...

    gruss, crisdoe

  • #2
    wieso? die 6 ist doch richtig. es sind 6 indizes vorhanden.

    oder willst du nur die values zusammenzählen?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ... ich will nur die values! das ist mein problem!
      bei einem gesetztem wert ne 1, bei 3 werten ne 3 usw...


      gruss, crisdoe

      Kommentar


      • #4
        bei einem gesetzen value?

        wie bitte setzt du die?

        zeig mal deinen html-code dazu.

        zumidest das stück des select-feldes
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          auszugsweise:

          PHP-Code:
            <form name="autoren" action="array.php" method="post">
              <
          table border="0" align="center" cellpadding="3" cellspacing="0">
                <
          tr
                  <
          td align="right">Autor 1:</td>
                  <
          td><select name="autor_id[]">
                      <
          option value=""></option>
                      <
          option value="1">1</option>
                      <
          option value="2">2</option>
                    </
          select></td>
                </
          tr>
                <
          tr
                  <
          td align="right">Autor 2:</td>
                  <
          td><select name="autor_id[]">
                      <
          option value=""></option>
                     <
          option value="2">2</option>
                      <
          option value="3">3</option>
                    </
          select></td>
                </
          tr>
                <
          tr
                  <
          td align="right">Autor 3:</td>
                  <
          td><select name="autor_id[]">
                      <
          option value=""></option>
                      <
          option value="3">3</option>
                      <
          option value="4">4</option>
                    </
          select></td>
                </
          tr>
                <
          tr
                  <
          td align="right">Autor 4:</td>
                  <
          td><select name="autor_id[]">
                      <
          option value=""></option>
                      <
          option value="4">4</option>
                      <
          option value="5">5</option>
                    </
          select></td>
                </
          tr>
                  <
          td colspan="2" align="center"><input type="submit" value="Abschicken"></td>
                </
          tr>
              </
          table>
            </
          form

          Kommentar


          • #6
            so?
            PHP-Code:
            $summe 0;
            foreach(
            $_POST['autor_id'] as (int)$value)
            {
                
            $summe+= $value;

            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              da kommen wir der sache schon näher!

              PHP-Code:
              $summe 0;

              foreach(
              $_POST['autor_id'] as $value)

              {

                  
              $summe+= $value;

              }

              echo 
              $summe."<br>"
              addiert jetzt die gesetzten werte, ich benötige jedoch die anzahl der values!

              PHP-Code:
              Array
              (
                  [
              0] => 
                  [
              1] => 
                  [
              2] => 1
                  
              [3] => 
                  [
              4] => 
                  [
              5] => 3
              )



              ergibt mit obigen code 4, gewünschte ausgabe ist aber die 2.
              (int) erzeugte fehlermeldungen.

              gruss, crisdoe

              Kommentar


              • #8
                PHP-Code:
                    $counter 0;
                    foreach(
                $_POST['autor_id'] as $value) {
                    if(!empty(
                $value)) $counter++; 
                    } 
                soderle, so geht's!

                dankeschön für die anregung,
                mfg, crisdoe

                Kommentar

                Lädt...
                X