【问题标题】:How to post variable from field in page 1 to page 2如何将变量从第 1 页的字段发布到第 2 页
【发布时间】:2014-08-11 05:22:55
【问题描述】:

我的代码试图允许用户通过单击添加按钮来添加新的文本字段。我想将用户添加的所有文本字段(无论是 2、3、4 还是更多)发布到下一页,以便检索用户输入的数据。

P/S:添加新要求:检索数据并打印用户输入的数据

这是我的代码:

    <html> 
    <head>
        <script type="text/javascript" src="jquery.js"></script>

    </head>
<body>
    <script>
    $(document).ready(function(){
        var counter = 2;
        $("#addMenuTab").click(function () {
            if(counter>10){
                alert("Only 10 textboxes allow");
                return false;
            }   

            var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
            newTextBoxDiv.after().html('<label>Menu Tab #'+ counter + ' : </label>' +
                '<input type="text" name="textbox' + counter + 
                '" id="textbox' + counter + '" value="" >');

            newTextBoxDiv.appendTo("#TextBoxesGroup");
            counter++;
        });

        $("#removeMenuTab").click(function () {
            if(counter==1){
                alert("No more textbox to remove");
                return false;
            }   
            counter--;
            $("#TextBoxDiv" + counter).remove();
        });

    });
    </script>
    <form name="basicInfo" action="contents.php" method="post"> 
    <div id='TextBoxesGroup'>
                            <div id="TextBoxDiv1">
                                <label>Menu Tab #1 : </label>
                                <input type='text' id='textbox1' >
                            </div>
                        </div>
                        <br/>
                            <input type='button' value='  Add Menu Tab  ' id='addMenuTab' />
                            <input type='button' value='  Remove Menu Tab  ' id='removeMenuTab' />
    </form>
</body>
    </html>

【问题讨论】:

  • 如果 PHP - 使用会话,如果 JS - 使用本地存储
  • 使用 Ajax 而不是使用不同的页面
  • 你能详细说明一下吗?

标签: javascript php jquery html arrays


【解决方案1】:

您可以在 $_POST 全局数组下的 contents.php 中获取所有这些字段及其值。 例如:

<?php 
    echo "<pre>"; 
    print_R($_POST); 
    echo "</pre>";
?>

【讨论】:

  • 我可以使用类似 $_POST['xxx']; 的东西来检索输入。 ?我没有在“xxx”中放入什么作为我编码的计数循环。另外,我想打印出用户输入的数据。打印输出不是数组,而是用户在字段输入中的每个单独条目。
【解决方案2】:

对于您的问题,我有一个简单的解决方案。 使用一个计数器来计算文本字段的数量。 我们稍后可以将此变量传递给 html。 修改你的javascript:-

  <script>
$(document).ready(function(){
    var counter = 2;
    $("#count").val(counter-1); 
    $("#addMenuTab").click(function () {
        if(counter>10){
            alert("Only 10 textboxes allow");
            return false;
        }   

        var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
        newTextBoxDiv.after().html('<label>Menu Tab #'+ counter + ' : </label>' +
            '<input type="text" name="textbox' + counter + 
            '" id="textbox' + counter + '" value="" >');

        newTextBoxDiv.appendTo("#TextBoxesGroup");
        $("#count").val(counter); 
        counter++;                    
    });

    $("#removeMenuTab").click(function () {
        if(counter==1){
            alert("No more textbox to remove");
            return false;
        }   
        counter--;
        $("#TextBoxDiv" + counter).remove();
        $("#count").val(counter-1); 
    });
});
</script>

现在在您的 html 表单中添加一个隐藏字段。此隐藏字段的值将是 texfields 的总数。

<input type='hidden' id='count' name='counter' value=''/>

在您的 contents.php 中添加以下代码。

$count=$_POST['counter'];
for($i=1;$i<=$count;$i++)
{
 echo "value from textbox$i is".$_POST["textbox$i"]."<br/>";
}

在这里您将获得变量 $count 中的文本字段总数 由于您的 texfields 的名称类似于 textbox1,textbox2..etc 您可以使用循环使用 POST 方法从上一页获取所有数据。

还将名称属性添加到您的初始文本框以完成这项工作。

<input type='text' id='textbox1' name="textbox1" >

【讨论】:

    【解决方案3】:

    我不明白你的问题是什么。如果您添加一些输入,例如 textbox10,您将能够在服务器上毫无问题地读取 textbox10。

    【讨论】:

    • 这在我看来不是答案。
    • 是的。可以毫无问题地阅读textbox10。但我想打印出用户键入的输入。它类似于 $_POST[''];但我不确定在“”中输入什么。
    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多