php
  • jquery
  • 2014-04-02 26 views 0 likes 
    0

    所以我有一个窗体。该表单默认由10行组成。它是这样的:

    <form method="post" action="actionhere"> 
    <?php 
        for($i=0; $i<10;$i++) { 
    ?> 
        <div class='clone_me'> 
        <span>Line <?php echo $i;?></span> 
    
        <input type='checkbox' name='ck_<?php echo $i;?>'/> 
        <input type='text' name='tx_<?php echo $i;?>'/> 
        </div> 
    <?php } ?> 
    <input type='submit' name='submit' value='Submit'/> 
    </form> 
    

    所以表单内,我们将有10列复选框+文本框。

    我想要做的是,我想放置一个按钮来添加新行(复选框+文本框)。现在,问题是,我需要$ i值(因为它是for循环的形式)。有可能当我们点击添加行按钮时,我们为循环设置的$ i的值在每次点击时会增加1?我知道我们可以使用jquery克隆div,但$ i值如何?

    +0

    计算Javascript中现有行的总数。将数字1添加到它,然后它会是你的新'我'。 –

    +1

    您无法修改服务器端变量,即$ i使用客户端脚本,即按钮单击。 – dikesh

    回答

    1

    那么,基本上没有。生成html时,您的PHP脚本已经结束。所以你不能再依赖于PHP。但是你不需要使它明确出现在你的html中。
    你应该使用jQuery计算行数:

    var i = $('form').find('.clone_me').length 
    

    ,然后再添加一个新的使用行的javascript:

    $('form .clone_me:last').clone().insertAfter('form .clone_me:last'); 
    
    0

    可能是这可以是,但有一些限制

    ,如果您有页面重新加载没有问题,你可以做到这一点: -

    通过这种方式您的网页将重新加载,并在文本框和复选框的值将去NE:--- :)

    每一次新的页面生成,并通过服务器发送到客户端浏览器

    <?php 
    
    if(isset($_POST['submit'])){ 
    
    $ends = $_POST['ttl_rows']; 
    
    }else{ 
    
    $ends = 10; 
    
    } 
    
    ?> 
    
    
    
    <form method="post" action="#"> 
    <?php 
        for($i=1 ; $i<$ends;$i++) { 
    ?> 
        <div class='clone_me'> 
        <span>Line <?php echo $i;?></span> 
    
        <input type='checkbox' name='ck_<?php echo $i;?>'/> 
        <input type='text' name='tx_<?php echo $i;?>'/> 
        </div> 
    <?php } ?> 
    
    <input type='hidden' name='ttl_rows' value='<?php echo ($i+1); ?>'/> 
    <input type='submit' name='submit' value='Submit'/> 
    </form> 
    
    2

    我认为你正在做它在错误的方式,你不需要$i里面的值name属性你有使用阵列它例如

    <form method="post" action="test.php"> 
        <div class='clone_me'> 
         <span>Line 1</span> 
          <input type='checkbox' name='ck[]'/><!--this field should menditory--> 
          <input type='text' name='tx[]'/> 
         <span>Line 2</span> 
          <input type='checkbox' name='ck[]'/><!--this field should menditory--> 
          <input type='text' name='tx[]'/> 
        </div> 
        <input type='submit' name='submit' value='Submit'/> 
        </form> 
    

    立即实现actionhere.php这个代码

    <?php 
        $cks = $_POST['ck']; 
        $txs = $_POST['tx']; 
    
        foreach($cks as $key => $ck) { 
         echo $ck."<br>"; 
         echo $txs[$key]."<br>"; 
        } 
    ?> 
    
    1
    <input type='hidden' name='counter' id='counter'/> 
        <input type='checkbox' name='chk' id='chk'/> 
        <?php 
    
        $counter=$_POST['counter']; 
    
    
        for($i=0;$i<=$counter;$i++) 
    
        { 
        $chk=$_POST['chk'.$i]; 
        // Your Insert Code Here 
        } 
    
    
    
        ?> 
    
    相关问题