2016-05-20 38 views
0

Zuerst ist dies meine erste Seite, die Sie eingeben, wie viele Formulare Sie einfügen müssen.multiple form mit jquery

<table> 
    <form method="post" action="additem.php"> 
     <tr> 
      <td>How many records to insert? </td> 
      <td><input type="text" name="num" size="2" /></td> 
     </tr> 
    </form> 
</table> 

Zweitens wird additem.php gehen und Form auf der Anzahl abhängig angezeigt werden Sie einfügen. Zum Beispiel haben Sie 2 eingegeben, dann werden 2 Formulare angezeigt. Anzeige beliebiger Zahlen von Formularen sind in Ordnung. Das einzige Problem ist meine jQuery. Die erste Form funktioniert nur, die zweite, dritte und so weiter nicht.

<link rel="stylesheet"href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
<script type="text/javascript"> 
function showForm() { 
    var selopt = document.getElementById("opts").value; 
    if (selopt == "branch") { 
     document.getElementById("f2").style.display = "block"; 
     document.getElementById("f1").style.display = "none"; 
    } 
    if (selopt == 0) { 
     document.getElementById("f2").style.display = "none"; 
     document.getElementById("f1").style.display = "none"; 
    } 
    if (selopt == "vicma") { 
     document.getElementById("f1").style.display = "block"; 
     document.getElementById("f2").style.display = "none"; 
    } 
} 
</script> 
<table> 
    <tbody> 
    <?php 
     $numbers=$_POST['num']; 
     for($i=1;$i<=$numbers;$i++){ 
    ?> 

    //This is my javascript which i have 2 
    values in first dropdown and will appear 
    another dropdown of the choosen value 
    on the first.Only first is working and others not.//  
    <input type="hidden" value="<?php echo $numbers;?>" name="numbers" /> 
    <tr> 
     <td><font color="black">*</font>Serial No: </td> 
     <td><input type="text" value="<?php if(isset($_POST['serialnumber'])) echo htmlspecialchars($_POST['serialnumber']);?>" name="serialnumber[]"><br></td> 
    </tr> 
    <tr> 
     <td> Requested Dept:</td> 
     <td> 
      <select name ="type" id="opts" onchange="showForm()"> 
       <option value="">Select Option</option> 
       <option value="vicma">Vicma</option> 
       <option value="branch">Branch</option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <div id="f1" style="display:none"> 
       <select name="user1[]" id="opts" onchange="showForm()"> 
        <option value="ACCOUNTING" >ACCOUNTING</option> 
        <option value="CNC">CNC</option> 
        <option value="CONCESSION">CONCESSION</option> 
        <option value="HR">HR</option> 
        <option value="INVENTORY">INVENTORY</option> 
        <option value="SALES AND MARKETING">SALES AND MARKETING</option> 
        <option value="WAREHOUSE">WAREHOUSE</option> 
        <option value="MIS">MIS</option> 
       </select> 
      </div> 
      <div id="f2" style="display:none"> 
       <select name="user[]" id="opts" onchange="showForm()" > 
       <?php 
        $sql = "SELECT * FROM branch_tb"; 
        $result = $conn->query($sql); 
        while($row=mysqli_fetch_array($result)){ 
        $bid = $row['id']; 
        $name = $row['branchname']; 
       ?> 
       <option value ="<?=$bid?>"><?=$name?> </option><?}?> 
       </select>     
      </div> 
     </td> 
    </tr> 
    <?php } ?> 
    </tbody> 
</table> 
+0

Was funktioniert nicht in anderen 'Formen'? –

+0

@GuruprasadRao, meine Dropdown mit jquery. nur der erste funktioniert, die zweite Schleife und so weiter mit Dropdown funktioniert nicht mehr. Kein weiteres Dropdown-Menü mehr angezeigt – Jannice

+0

Ihre 'for'-Schleife ist nicht richtig beendet, oder? Ich sehe auch keine anderen 'Formen' hier hinzugefügt .. –

Antwort

0

Versuchen Sie, diese

<script type="text/javascript"> 
    $('.drop').change(function(){ 
     var id = $(this).data('id'); 
     var selopt = $(this).val(); 
     if (selopt == "branch") { 
      $('#first'+id).hide(); 
      $('#second'+id).show(); 
      } 
     if (selopt == 0) { 
      $('#first'+id).hide(); 
      $('#second'+id).hide(); 
     } 
     if (selopt == "vicma") { 
      $('#first'+id).show(); 
      $('#second'+id).hide(); 
     } 
    }); 
</script> 
<table> 
    <tbody> 
    <?php 
     $numbers=$_POST['num']; 
     for($i=1;$i<=$numbers;$i++){ 
    ?> 

    //This is my javascript which i have 2 
    values in first dropdown and will appear 
    another dropdown of the choosen value 
    on the first.Only first is working and others not.//  
    <input type="hidden" value="<?php echo $numbers;?>" name="numbers" /> 
    <tr> 
     <td><font color="black">*</font>Serial No: </td> 
     <td><input type="text" value="<?php if(isset($_POST['serialnumber'])) echo htmlspecialchars($_POST['serialnumber']);?>" name="serialnumber[]"><br></td> 
    </tr> 
    <tr> 
     <td> Requested Dept:</td> 
     <td> 
      <select name ="type" data-id="<?=$i?>" class="drop"> 
       <option value="">Select Option</option> 
       <option value="vicma">Vicma</option> 
       <option value="branch">Branch</option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <div id="first<?=$i?>" style="display:none"> 
       <select name="user1[]" data-id="<?=$i?>" class="drop" > 
        <option value="ACCOUNTING" >ACCOUNTING</option> 
        <option value="CNC">CNC</option> 
        <option value="CONCESSION">CONCESSION</option> 
        <option value="HR">HR</option> 
        <option value="INVENTORY">INVENTORY</option> 
        <option value="SALES AND MARKETING">SALES AND MARKETING</option> 
        <option value="WAREHOUSE">WAREHOUSE</option> 
        <option value="MIS">MIS</option> 
       </select> 
      </div> 
      <div id="second<?=$i?>" style="display:none"> 
       <select name="user[]" data-id="<?=$i?>" class="drop" > 
       <?php 
        $sql = "SELECT * FROM branch_tb"; 
        $result = $conn->query($sql); 
        while($row=mysqli_fetch_array($result)){ 
        $bid = $row['id']; 
        $name = $row['branchname']; 
       ?> 
       <option value ="<?=$bid?>"><?=$name?> </option><?}?> 
       </select>     
      </div> 
     </td> 
    </tr> 
    <?php } ?> 
    </tbody> 
</table> 
+0

immer noch das gleiche @vinie, für die 2. Schleife, wenn Sie dropwdown wählen. Das Ergebnis wird auf dem ersten Bildschirm angezeigt. – Jannice

+0

Sie zeigen und verstecken das Formular mit Dropdown-Änderung. So macht es das gleiche – Vinie

+0

und ich bin nicht in der Lage, irgendeine Form in Ihrem Code zu sehen – Vinie

0

Sie benötigen für div eindeutige ID zu setzen. Um dies zu erreichen, können Sie den $ i-Wert mit "f" wie folgt verwenden. Übergeben Sie $ i auch in showForm().

<div id="f<?php echo $i; ?>" style="display:none"> 
       <select name="user1[]" id="opts" onchange="showForm(this,'<?php echo $i; ?>')"> 
        <option value="ACCOUNTING">ACCOUNTING</option> 
        <option value="CNC">CNC</option> 
        <option value="CONCESSION">CONCESSION</option> 
        <option value="HR">HR</option> 
        <option value="INVENTORY">INVENTORY</option> 
        <option value="SALES AND MARKETING">SALES AND MARKETING</option> 
        <option value="WAREHOUSE">WAREHOUSE</option> 
        <option value="MIS">MIS</option> 
       </select> 
</div> 
function showForm(val, num) { 
       var selopt = val.value; 
       if (selopt == "branch") { 
        document.getElementById("f"+num).style.display = "block"; 
        document.getElementById("f"+num).style.display = "none"; 
       } 
       if (selopt == 0) { 
        document.getElementById("f"+num).style.display = "none"; 
        document.getElementById("f"+num).style.display = "none"; 
       } 
       if (selopt == "vicma") { 
        document.getElementById("f"+num).style.display = "block"; 
        document.getElementById("f"+num).style.display = "none"; 
       } 
      }