1

所以我之前已经构建了数百个表单,都没有问题,但出于某种我不知道的原因,这个似乎不起作用。这种形式还处于起步阶段,以后将被插入到更大的 Web 应用程序中。我一遍又一遍地检查我的代码,检查 PHP 是否正常运行等,但我没有解决我的问题。

问题是我无法从 PHP 访问表单中的任何数据。更进一步,一旦表单被发布,它不会将表单数据附加到 URL。相反,我只是得到www.example.com/list.php?

希望我只是忽略了一些东西,但我唯一能想到的另一件事是它与 JQuery 有关。如果你们可以看看我的代码,看看是否有任何明显的错误,我将不胜感激。

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>list</title>

  <script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
  <script>
  $(window).load(function(){
    var counter = 1;

  $('button.remove').click(function(){
    if(counter >= 1){
       $("#cnt" + counter).remove();
       counter--;
       $('#count').attr('value', counter);
    }
  });

  $('button.add').click(function(e){
    e.preventDefault();
    counter++;
$('#count').attr('value', counter);

    var newData = '<tr style="display:none" id="cnt' + counter + '"><td><input type="text" value="Content' + counter + '"/></td></tr>';
    $(newData).appendTo('#myTable').fadeIn('slow').slideDown('slow');
   });
   });  
   </script>
   </head>

   <body>
<button class="add"> + </button><button class="remove"> - </button>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">

  <table id="myTable">
    <tr>
          <td><input type="text" value="Content1" id="cnt1" /></td>
           </tr>
  </table>

    <input type="hidden" id="count" value="10" />
    <input type="submit" value="Submit" />
   </form>

<?php
echo $_GET['count'];
?>

</body>
</html>
4

3 回答 3

2

您为输入字段遗漏了“NAME”属性....

ID 属性不替换 name 属性

于 2013-03-19T15:51:24.113 回答
1

好吧,在做了一些改变之后,这对我有用 -

<td><input type="text" value="Content1" id="cnt1" name="some[]" /></td>

添加name为数组,因为它们是动态添加的。

从脚本我改变了以下行 -

var newData = '<tr style="display:none" id="cnt' + counter + '"><td><input type="text" value="Content' + counter + '"/></td></tr>';

var newData = '<tr style="display:none" id="cnt' + counter + '"><td><input type="text" value="Content' + counter + '" name="some[]"/></td></tr>';

打印时,由于文本字段将是一个数组,因此您需要使用 print_r($_GET)而不是echo $_GET;

刚刚添加name=some[]在上面的行中。

您没有name在文本字段中提到属性。

于 2013-03-19T15:51:37.893 回答
0

糟糕,你错过了name='count':)<input type='hidden'>发生在我们最好的人身上

于 2013-03-19T15:47:11.100 回答