【问题标题】:Submit an array of values with SimpleTest使用 SimpleTest 提交一组值
【发布时间】:2011-07-01 06:22:10
【问题描述】:

我正在尝试提交一个包含字段数组的简单表单:

<form>
<input type='text' name='Article[]' id='Article1' />
<input type='text' name='Article[]' id='Article2' />
<input type='text' name='Article[]' id='Article3' /> 

那么,如何使用 SimpleTest 设置不同的字段?

(附注:我看过这个问题:Simpletest PHP scriptable browser... how to test submit a form that has [ ] in the form name (basically in array format)? 但它没有回答我的问题)。

【问题讨论】:

    标签: php simpletest


    【解决方案1】:

    我想出一种方法是使用 setFieldById。将代码更改为:

    $form->setFieldById('Article1', 'Some Article Text 1'); 
    $form->setFieldById('Article2', 'Some Article Text 2'); 
    

    等等。完美运行,但假设您可以为每个字段生成唯一的 ID——这并不难。

    【讨论】:

      【解决方案2】:

      试试$form-&gt;setField('Article', array("Some article text", "Some article text2"));

      【讨论】:

      • documentation of SimpleTest中有类似的例子。这似乎是错误的,因为它使用name='crud' 而不是name='crud[]' 作为输入,但它表明 SimpleTest 应该能够在具有相同名称的字段中设置值。我会尝试'Article[]'(不仅仅是'Article')作为第一个参数:)
      • 其实这个方法不太行,因为有三个 Article[] 字段,SimpleTest 分别设置了数组。这意味着我得到 9 个值而不是我想要的三个值。我想出了一种方法来做到这一点。将其发布为参考答案。
      【解决方案3】:

      试试这个:(simpletest.php)

      <?php
      if( isset( $_REQUEST['submit']))
          print_r( $_POST['Article']);
      ?>
      <form method='post' action='simpletest.php'> 
      <input type='text' name='Article[]' id='Article1' />
      <input type='text' name='Article[]' id='Article2' />
      <input type='text' name='Article[]' id='Article3' />
      <input type='submit' name='submit' id='submit' />
      </form>
      

      【讨论】:

      • 谢谢,但这不是我要问的。我想用 simpletest 自动提交这个东西。通常,我们这样做: $form->setField('Article[]', "Some article text");但是我不能使用这种方法提交多个值。
      猜你喜欢
      • 2010-12-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      相关资源
      最近更新 更多