Zeile hinzufügen?

xThorx

Mitglied
Hallo zusammen,

ich habe da mal wieder ein komplexeres Problem. Schaut Euch doch diesbezüglich bitte mal folgenden Link an:

http://donner77.do.funpic.de/Versuche/Ultima.php

Das Problem bei diesem Formular ist, dass sobald eine Zeile hinzugefügt wird, und die radio buttons der felder größe gewechselt werden sich diese immer auf die obere Zeile bezieht.

Wie bekomme ich es in den Griff, dass die Änderung auch wirklich nur in der jeweiligen Zeile erfolgt?

BTW ist es doch bestimmt machbar, das Feld Größe red zu deaktivieren wenn daneben Größe ausgewählt wurde und umgekehrt, oder?

Vielen vielen Dank für Eure Hilfe!

Hier nochmal eben der Code, der sich in einer Datei befindet allerdings gesplittet werden muss, da die maximale Anzahl von 15000 Zeichen sonst gesprengt wird:

Code:
<?php

	$response = "response.php"; # Antwortseite
	$errorpage = "errorpage.php"; # Fehlerseite

    function select_field($name, $list, $selected_value="", $enabled=true)
    {
        //$list muss ein mehrdimensionales Array sein und die Schlüssel "value" und "label" enthalten.
        $disabled = "";
        $option = "";
        foreach($list["label"] as $pos => $label)
        {
            if ((!empty($selected_value)) && ($list["value"][$pos] == $selected_value))
            {
                $selection = " selected=\"selected\"";
            }
            else
            {
                $selection = "";
            }
            $option .= "    <option value=\"".$list["value"][$pos]."\"".$selection.">".$label."</option>\n";
        }
        if ($enabled == false)
        {
            $disabled = " disabled=\"disabled\"";
        }

        $result = "\n<select name=\"".$name."\"".$disabled.">\n";
        $result .= $option;
        $result .= "</select>\n";
        
        return $result;
    }
    
    
    //Wurde der "absenden"-Button betätigt?
    if (isset($_POST["btn_absenden"]))
    {
        //ja!

        //HTML-Email basteln:
        
        //Angaben des Kunden in einer HTML-Tabelle:
        $kunde = "<table>
            <tr>
                <!-- <td>Betreff</td>-->
                <!-- <td>".$_POST["txt_betreff"]."</td>-->
		<td>Anrede</td>
                <td>".$_POST["txt_anrede"]."</td>
                <td>Name *</td>
                <td>".$_POST["txt_name"]."</td>
            </tr>
            <tr> 
		<td>Firma *</td>
                <td>".$_POST["txt_firma"]."</td>              
                <td>Stra&szlig;e</td>
                <td>".$_POST["txt_strasse"]."</td>
            </tr>
            <tr>
                <td>PLZ / Ort</td>
                <td>".$_POST["txt_plz_ort"]."</td>
                <td>Land</td>
                <td>".$_POST["txt_land"]."</td>
            </tr>
            <tr>                
                <td>Telefon *</td>
                <td>".$_POST["txt_telefon"]."</td>
		<td>Email *</td>
                <td>".$_POST["txt_email"]."</td>
            </tr>
            <tr>                
                <td>Fax</td>
                <td>".$_POST["txt_fax"]."</td>
            </tr>
        </table>";        
        
        
        //Details in eine HTML-Tabelle:
        $details = "<table>
                        <tr>
                            <td>Menge</td>
                            <td>Nr.</td>
                            <td>Gr&ouml;&szlig;e</td>
                            <td>Gr&ouml;&szlig;e red.</td>
                            <td>Ausf&uuml;hrung</td>
                        </tr>";

        foreach($_POST["menge"] as $nr => $menge)
        {
            $details .= "<tr>";
                $details .= "<td>".$menge."</td>";
        		$details .= "<td>".$_POST["nr"][$nr]."</td>";		
        		$details .= "<td>".$_POST["umfang"][$nr]."</td>"; 
        		$details .= "<td>".$_POST["umfang_red"][$nr]."</td>"; 
        		$details .= "<td>".$_POST["ausf"][$nr]."</td>";     
            $details .= "</tr>";
        }
        $details .= "</table>";
        
        //Mail-Inhalt aus den Segmenten zusammensetzen:
        $mail_body = $kunde."<br /><br />".$details."<br /><br />".$_POST["txt_bemerkung"];

        //Professionelle Mail-Klasse inkludieren:
        require_once("class.phpmailer.php");
        
        //mail-object:
        $mail = new PHPMailer();
        
        //set some mail-defaults:
        $mail->SetLanguage("de");
        $mail->From     = "test.localhost";
        $mail->FromName = "Test-System";
        $mail->Subject  = "Anfrage";
        $mail->AddReplyTo("test.localhost", "Test-Reply");
        
        $mail->Body     = $mail_body;
        $mail->AddAddress("Verkauf@krause-kundk.de");
        
        $mail->IsHTML(true);
        
        //mail versenden:
        if ($mail->send() == true)
        {
            //erfolgreich gesendet!	    
	    require ("$response");
            //echo "Vielen Dank, Ihre Anfrage wurde empfangen!";
        }
        else
        {
            //Fehler beim Senden:
	    require ("$errorpage");
            //echo "Sorry, Ihre Anfrage konnte nicht empfangen werden! (".$mail->ErrorInfo.")";
        }
        
        //Skript beenden:
        exit; 
    }


    //Werte für Select-Felder festlegen:
    $select_ausf["label"] = array
    (
        "------------",
        "schwarz",
        "verzinkt"
    );
    
    $select_umfang_red["label"] = array
    (
        "-----------------", "3/8 x 1/4", "1/2 x 1/4",
        "1/2 x 3/8", "3/4 x 1/4", "3/4 x 3/8",
        "3/4 x 1/2", "1 x 3/8", "1 x 1/2",
        "1 x 3/4", "1 1/4 x 1/2", "1 1/4 x 3/4",
        "1 1/4 x 1", "1 1/2 x 1/2", "1 1/2 x 3/4",
        "1 1/2 x 1", "1 1/2 x 1 1/4", "2 x 1/2",
        "2 x 3/4", "2 x 1", "2 x 1 1/4",
        "2 x 1 1/2", "2 1/2 x 1", "2 1/2 x 1 1/4",
        "2 1/2 x 1 1/2", "2 1/2 x 2", "3 x 1 1/4",
        "3 x 1 1/2", "3 x 2", "3 x 2 1/2",
        "4 x 2", "4 x 2 1/2", "4 x 3"
    );
    
    $select_umfang["label"] = array
    (
        "----------", "1/4", "3/8",
        "1/2", "3/4", "1",
        "1 1/4", "1 1/2", "2",
        "2 1/2", "3", "4"
    );
    
    $select_nr["label"] = array
    (
    "----------", "1", "1a",
    "2", "2a", "40",
    "41", "90", "92",
    "95", "96", "97",
    "98", "120", "121",
    "130", "180", "221",
    "240", "241", "245",
    "246", "270", "280",
    "290", "300", "330",
    "331", "340", "341",
    "RDN"
    );
                     
    
    //da "value" in diesem Fall immer "label" entspricht, füllen wir kurzerhand "value" mit dem Inhalt von "label".
    $select_nr["value"]         = $select_nr["label"];
    $select_umfang["value"]     = $select_umfang["label"];
    $select_umfang_red["value"] = $select_umfang_red["label"];
    $select_ausf["value"]       = $select_ausf["label"];

?>
 
Zeile hinzufügen? 2ter Teil

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <script language="JavaScript">
	<!--

    function check_umfang(first_feld,next_feld,index)
    {
      if(index == -1)
      {
        index = "";
      }

      var obj = document.getElementsByName(first_feld)[index];

      var objs = new Array();

      objs[0] = document.getElementsByName(next_feld)[index];

      if(old_nutzung_status[first_feld])
      {
        old_nutzung_status[first_feld] = false;
        old_nutzung_status[next_feld] = true;
      }
      else
      {
        old_nutzung_status[first_feld] = true;
        old_nutzung_status[next_feld] = false;
      }

      for(var i = 0; i<objs.length; i++)
      {
	      if(old_nutzung_status[first_feld])
	      {
	        objs[i].disabled=true;
          obj.disabled=false;
	      }
	      else
	      {
	        objs[i].disabled=false;
          obj.disabled=true;
	      }
      }
    }

    var old_nutzung_status = new Array();
    old_nutzung_status["umfang[]"] = true;
    old_nutzung_status["umfang_red[]"] = false;

	//-->
	</script>
    
    <center>
        <title>Anfrage</title>
        <script language="javascript" type="text/javascript">

function CheckLen(Target) {
StrLen = Target.value.length
if (StrLen == 1 && Target.value.substring(0,1) == " ") {
 Target.value = ""
 StrLen = 0 }
if (StrLen > 2000 ) {
Target.value = Target.value.substring(0,2000)
CharsLeft = 0 }
else {
CharsLeft = 2000 - StrLen }
document.email.anzahl.value = CharsLeft }
//-->

        
        <!-- Hide scipt from older browsers

            function checkdata(f)
            {               
                if (
                       (valid_value(f.txt_firma, ""))
		    && (valid_value(f.txt_name, ""))
                    && (valid_value(f.txt_email, ""))
                    && (valid_email(f.txt_email))
                    && (valid_value(f.txt_telefon, ""))
                    )
                {
                    return true; //everything is ok, so form can be submitted!
                }
                else
                {
                    return false;
                }
            }   


            function valid_value(obj, forbidden_value)
            {
                if (obj.value == forbidden_value)
                {
                    switch (obj.name)
                    {
                        case "txt_firma":
                            desc = "Bitte geben Sie den Namen Ihrer Firma an!";
                            break;
			case "txt_name":
                            desc = "Bitte geben Sie Ihren Namen an!";
                            break;
                        case "txt_email":
                            desc = "Bitte geben Sie Ihre Email-Adresse an!";
                            break;
                        case "txt_telefon":
                            desc = "Bitte geben Sie Ihre Telefonnummer an!";
                            break;
                    }
                    alert(desc);
                    obj.focus();
                    return false;
                }
                return true;
            }


            function valid_email(obj)
            {
                if (obj.value != "")
                {
                    re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;   
                    if (re.test(obj.value))
                    {
                        return true;
                    }
                    else
                    {
                        alert("Keine gültige Email-Adresse!");
                        obj.focus();
                        obj.select();
                        return false;
                    }
                }
                else
                {
                    return true;
                }               
            }
            
        // End hiding script -->    

        </script>
        <style type="text/css">
            body
            {
                color:#000000;
                font-family:Arial;
                font-size:12px;
            }
            
            input
            {
                background-color:#ffff77;
            }
            
            td
            {
                padding:4px;
            }
            
            .head
            {
                font-weight:bold;
            }
            
            .red
            {
                color:red;
            }
            
            textarea
            {
                background-color:#ffff77;
            }
        </style>
    </head>
    <body>
    
<table>
<tr><td></td>



</TABLE><br>
<h1>ANFRAGE</h1>
	
        <div>
            <form name="email" onsubmit="return checkdata(this)" method="post" action="Ultima.php">
                <table>
                    <tr>
                        <!--<td>Betreff</td>
                        <td><input type="text" name="txt_betreff" value="<?php echo $_POST["txt_betreff"]?>" /></td>-->
			<td>Anrede</td>
                        <td><input type="text" name="txt_anrede" value="<?php echo $_POST["txt_anrede"]?>" /></td>
                        <td>Name <b class="red">*</b></td>
                        <td><input type="text" name="txt_name" value="<?php echo $_POST["txt_name"]?>" /></td>
                    </tr>
                    <tr>
                        <td>Firma <b class="red">*</b></td>
                        <td><input type="text" name="txt_firma" value="<?php echo $_POST["txt_firma"]?>" /></td>
                        <td>Stra&szlig;e</td>
                        <td><input type="text" name="txt_strasse" value="<?php echo $_POST["txt_strasse"]?>" /></td>
                    </tr>
                    <tr>
                        <td>PLZ / Ort</td>
                        <td><input type="text" name="txt_plz_ort" value="<?php echo $_POST["txt_plz_ort"]?>" /></td>
                        <td>Land</td>
                        <td><input type="text" name="txt_land" value="<?php echo $_POST["txt_land"]?>" /></td>
                    </tr>
                    <tr>                        
                        <td>Telefon <b class="red">*</b></td>
                        <td><input type="text" name="txt_telefon" value="<?php echo $_POST["txt_telefon"]?>" /></td>
			<td>Email <b class="red">*</b></td>
                        <td><input type="text" name="txt_email" value="<?php echo $_POST["txt_email"]?>" /></td>
                    </tr>
                    <tr>
                        
                        <td>Fax</td>
                        <td><input type="text" name="txt_fax" value="<?php echo $_POST["txt_fax"]?>" /></td>
                    </tr>
                </table>
                <br />
                <table border="0">
                    <tr class="head">
                        <td>Menge</td>
                        <td>NR</td>
                        <td>Gr&ouml;&szlig;e</td>
                        <td>Gr&ouml;&szlig;e red.</td>
                        <td>Ausf&uuml;hrung</td>
                        <td>&nbsp;</td>
                    </tr>

<?php
    //wurde der "add-lines-button" gedrückt?
    if (isset($_POST["btn_add_lines"]))
    {
        //ja, "add-lines-button" wurde betätigt!

        //bereits eingegebene Werte wieder anzeigen:
        foreach($_POST["menge"] as $nr => $menge)
        {
            //rad_umfang oder rad_mfang_red?
            if ($_POST["rad_umfang"][$nr] == "umfang")
            {
                $rad_umfang_checked         = " checked=\"checked\"";
                $rad_umfang_red_checked     = "";
                $select_umfang_enabled      = true;
                $select_umfang_red_enabled  = false;
            }
            else
            {
                $rad_umfang_checked         = "";
                $rad_umfang_red_checked     = " checked=\"checked\"";
                $select_umfang_enabled      = false;
                $select_umfang_red_enabled  = true;
            }                

            echo "<tr>";
                echo "<td><input type='text' name='menge[]' value='".$menge."' /></td>";
        		echo "<td>".select_field("nr[]", $select_nr, $_POST["nr"][$nr])."</td>";		
        		echo "<td><input type=\"radio\" name=\"rad_umfang[".$nr."]\" value=\"umfang\" onClick=\"umfang_red.disabled = true;\"".$rad_umfang_checked." />".select_field("umfang[]", $select_umfang, $_POST["umfang"][$nr], $select_umfang_enabled)."</td>"; 
        		echo "<td><input type=\"radio\" name=\"rad_umfang[".$nr."]\" value=\"umfang_red\" onClick=\"umfang.disabled = true;\"".$rad_umfang_red_checked." />".select_field("umfang_red[]", $select_umfang_red, $_POST["umfang_red"][$nr], $select_umfang_red_enabled)."</td>"; 
        		echo "<td>".select_field("ausf[]", $select_ausf, $_POST["ausf"][$nr])."</td>";
        		echo "<td>&nbsp;</td>";      
            echo "</tr>";
        }
    }

?>  

                   
                     <tr>
                        <td><input type="text" name="menge[]"</td>
                        <td><?php echo select_field("nr[]", $select_nr); ?></td>
                        <td><input type="radio" name="rad_umfang[]" value="umfang" onClick="check_umfang('umfang[]','umfang_red[]',0)" checked="checked" /><?php echo select_field("umfang[]", $select_umfang); ?></td>
                        <td><input type="radio" name="rad_umfang[]" value="umfang_red" onClick="check_umfang('umfang_red[]','umfang[]',0);"  /><?php echo select_field("umfang_red[]", $select_umfang_red, "", false); ?></td>
                        <td><?php echo select_field("ausf[]", $select_ausf); ?></td>
                        <td><input type="submit" name="btn_add_lines" value="Artikel hinzuf&uuml;gen" /></td>
                    </tr>
                </table>

                
                <br />
                Bemerkungen <b class="red"></b><br />
		<textarea class="Input" name="txt_bemerkung" rows="5" cols="60" wrap="hard" onChange="CheckLen(this)" onFocus="CheckLen(this)" onKeyDown="CheckLen(this)" onKeyUp="CheckLen(this)"><?php echo "$Message";?></textarea><br>Restzeichen: <input type="text" name="anzahl" value="2000" size="4" maxlength="10"></td><br>
                <br><br>
		<table><tr><td><b class="red">* </b>Pflichtfelder&nbsp&nbsp&nbsp&nbsp&nbsp
                <input type="submit" value="absenden" name="btn_absenden" />
                <input type="button" value="drucken" onclick="javascript:print()" /></td></tr></table>
            </form>
        </div>
    </body>
</center>
</html>
 
Zurück