【问题标题】:Using form method POST to an existing PHP array使用表单方法 POST 到现有的 PHP 数组
【发布时间】:2013-12-24 03:55:13
【问题描述】:

点击提交后使用以下表单发布到同一页面:

<form action="" method="post"><a class="buttonnohover">
Enter URL: </a><input type="text" name="term2" class="buttonnohover"/>
<input type="submit" class="button" name="submit" value="Add URL" />
</form>

然后,代码顶部需要调用表单 POST 并在刷新时附加到现有的 URL 数组 ($myUrls)。目前它只是替换现有的数组值。

    <?php 

    try 
    {
        //URLs Array
        $myUrls = array($_POST['term2']);

        //Array Push for $myUrls
        array_push($myUrls,$term2);

...

不知道哪里出了问题?

【问题讨论】:

    标签: php html arrays forms


    【解决方案1】:

    请试试这个,

      <?php
    
        if(isset($_POST['term2'])){
    
              @session_start();
    
              $myUrl = array($_POST['term2']);
    
              // DEFINE A SESSION ARRAY [CHECK BEFORE EXISTED OR NOT}]
              $_SESSION['myUrls'] =count($_SESSION['myUrls'])>0?$_SESSION['myUrls']:array();
    
              //ADDED TO SESSION ARRAY
              array_push($_SESSION['myUrls'],$myUrl);
    
              //GET ARRAY FROM SESSION
              $myUrls = $_SESSION['myUrls'];
    
              //PRINT THE RESULTS
              print_r($myUrls);
    
       }
    
    
    
      ?>
    
      <form action="" method="post"><a class="buttonnohover">
      Enter URL: </a><input type="text" name="term2" class="buttonnohover"/>
      <input type="submit" class="button" name="submit" value="Add URL" />
      </form>
    

    【讨论】:

    • 谢谢大家。这不是我想要的,但让我走上了正轨!
    【解决方案2】:

    目前它只是替换现有的数组值。

    因为您直接将其分配给$myUrls 变量像这样$myUrls = array($_POST['term2']);

    这样做...

    $term2 = array($_POST['term2']); // assign it to the $term2 variable instead of $myUrls
    array_push($myUrls,$term2);
    

    (或)

    array_push($myUrls,array($_POST['term2']));
    

    【讨论】:

    • 这只是将 $term2 var 变成表单中已经发布的变量?本质上它创建了另一个数组?!?
    • 您可以使用我建议的第二种方式,因为它将$_POST['term2'] 直接推送到您的$myUrls 数组
    【解决方案3】:

    如果您只是想将 term2 的值添加到您的 URL 数组中,您可以将其附加到末尾:

    $myUrls = array(); // This will normally be populated with your values
    $myUrls[] = $_POST['term2'];
    

    【讨论】:

    • 不要这样做$myUrls = array();,因为 OP 已经在 $myUrls 数组上有一些值,这样做会覆盖现有值。
    • 我没有告诉他们制作一个新数组。那只是为了在我的代码中证明它是一个数组,所以下一行是有意义的。这就是为什么我添加评论以希望说明这一点。
    • 这没有任何作用。 term2 添加到现有数组条目,但在添加另一个值时,新添加的 term2 值替换新添加的数组值。
    猜你喜欢
    • 2011-08-10
    • 2011-10-09
    • 2016-10-06
    • 2016-05-06
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多