1

我正在使用 jQuery 生成许多文本区域。我想通过页面上的 POST 方法检索所有填写的文本区域的值(这是一种概念证明,快速而肮脏,我通常不会这样做),但是当我点击提交时,我得到了值只有一个,以最后发布的 textarea 值为准。我想我可以用一个数组和一个 foreach 循环来做到这一点,但我不确定如何做到这一点,因为在这项工作中添加了 jQuery/页面上因素的所有复杂性。我还想象它可能与所有生成的具有相同名称的文本区域有关......有人吗?

这是代码-

    <script type="text/javascript">
        $(document).ready(function() {

            $('.textadder').click(function(){
            $("form").append("<p class='introText2'>Enter More Text</p><textarea rows='5' cols='20' name='textForm' class='formText2'></textarea>");
        });



    });/*document ready*/

</script>

<?php

if (isset($_POST['textForm']))
{
$formTxt = $_POST['textForm'];
        echo $formTxt;
}
?>
</head>

<body>


<div id="wrapper">
    <div id="submittedHolder"></div>
    <div class="formBox">
        <form method="post" action="">
            <p class="introText">Please Enter Some Text</p>
            <textarea rows="5" cols="20" name="textForm" class="formText"></textarea>
            <input type="submit" class="submitter" value="Submit">
        </form>

        <div class="textadder"><p>More Text</p></div>
        <div class="clearer"></div>
    </div><!--formBox-->
</div><!--wrapper-->


</body>

</html>

谢谢!

4

2 回答 2

0
<script type="text/javascript">
        $(document).ready(function() {

            $('.textadder').click(function(){
            $("form").append("<p class='introText2'>Enter More Text</p><textarea rows='5' cols='20' name='textForm[]' class='formText2'></textarea>");
        });



    });/*document ready*/

</script>

<?php

if (isset($_POST['textForm']))
{
$formTxt = $_POST['textForm'];
        foreach($formTxt as $txt){
          echo $txt;
    }

}
?>
</head>

<body>


<div id="wrapper">
    <div id="submittedHolder"></div>
    <div class="formBox">
        <form method="post" action="">
            <p class="introText">Please Enter Some Text</p>
            <textarea rows="5" cols="20" name="textForm[]" class="formText"></textarea>
            <input type="submit" class="submitter" value="Submit">
        </form>

        <div class="textadder"><p>More Text</p></div>
        <div class="clearer"></div>
    </div><!--formBox-->
</div><!--wrapper-->


</body>

</html>

在这里使用数组。post 对象现在将是一个数组。

于 2012-04-16T07:51:40.253 回答
0

在您的文本区域名称中使用textForm[],而不是textForm

<textarea rows="5" cols="20" name="textForm[]" class="formText"></textarea>

之后,所有“textForm”文本区域都将在$_POST['textForm']数组中。

于 2012-04-16T07:50:13.643 回答