繁体   English   中英

我如何在PHP中获取javascript动态行值?

[英]How do i get the javascript dynamic row values in php?

的jsfiddle

我正在尝试在nextpage(postdata.php)上打印输入文本字段值。 但它始终只打印第一行结果。 我没有在下一页获得剩余的行值。 我在jsfiddle上发布了我的完整代码..如何在php(postdata.php页面)中获取剩余的js动态行值?

JS

$(document).ready(function(){
    $("span").click(function(){
        $("#container").append('<tr><td>Email : </td><td><input type="text" name="email[]" placeholder="Email id" /></td> &nbsp; <td>Name : </td><td><input type="text" name="name[]"  placeholder="Your Name "/></td>&nbsp; <td><a title="Delete this row" href="javascript:void(0);" class="remove">Del</a></td></tr>');
    });
    $("#container").on('click','.remove',function(){
        $(this).parent().parent().remove();
    });
});

<?php
    echo "
    <table>
    <tr>   
        <td>
            Email :
        </td>
        <td>
             $_POST[email]
        </td>
        <td>
            Name :
        </td>
        <td>
             $_POST[name]
        </td>
    </tr>
    </table>";
?>

当您在输入字段的名称中添加方括号时,PHP将以数组形式接收它的值。 您的JS代码很好,但PHP代码根本不处理数组。 请看以下内容:

echo "
<table>";
if(!is_array($_POST['email'])) {
    $_POST['email'] = array($_POST['email']);
    $_POST['name'] = array($_POST['name']);
}

foreach($_POST['email'] as $key => $email) {
    // get the corresponding name to the email
    $name = $_POST['name'][$key];
    echo "<tr>   
        <td>
            Email :
        </td>
        <td>
             $email
        </td>
        <td>
            Name :
        </td>
        <td>
             $name
        </td>
    </tr>";
}

echo "</table>";

注意:此代码将检查是否提交了多个值,并且将在两种方案中都有效。

由于您声明的字段名称是数组,因此$ _POST变为多维数组。所以请尝试这样

<?php
   $size = sizeof($_POST['email']);
   echo "<table>" ;
   for($i=0; $i<$size;$i++)
   {
    echo "
      <tr>   
        <td>
            Email :
        </td>
        <td>
             ".$_POST['email'][$i]."
        </td>
        <td>
            Name :
        </td>
        <td>
             ".$_POST['name'][$i]."
        </td>
    </tr>
    ";
    }
     echo "</table>";
?>

同样在你的html NameEmai l字段的name[]分别name[]email[] 。你也错放了form标签。 它之后开始<table>和结束后<table> 哪个不对。 所以将form标记之前table标签

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM