2011-07-01 14 views
2

と値の配列を提出してください:私はフィールドの配列を持つシンプルなフォームを送信しようとしているSimpleTestの

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

だから、どのように私はSimpleTestのを使用して異なるフィールドを設定するには?

(p.s.この質問はSimpletest PHP scriptable browser... how to test submit a form that has [ ] in the form name (basically in array format)?でしたが、私の質問には答えられません)。

答えて

1

を試してみて、私はこれを行うための一つの方法は、setFieldByIdを使用することです考え出しました。その上

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

そして:にコードを変更します。完全に動作しますが、難しいことではなく、各フィールドに固有のIDを生成できると仮定しています。

-2

はこれを試してみてください(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> 
+0

ありがとうございますが、それは私が求めているものではありません。私はこのことをsimpletestで自動的に提出したいと思います。通常は、次のようにします。 $ form-> setField( 'Article []'、 'Some article text'); ただし、このメソッドを使用して複数の値を提出することはできません。 – recluze

0

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

+0

[SimpleTestの文書](http://www.simpletest.org/en/form_testing_documentation.html#multiple)にも同様の例があります。入力に ​​'name = 'crud []''の代わりに 'name = 'crud''を使用するので、バグがあるようですが、SimpleTestは同じ名前のフィールドに値を設定できることを示しています。 – binaryLV

+0

実際には、Article []フィールドが3つあり、それぞれにSimpleTestが設定されているため、このメソッドはうまくいきません(つまり、Article [])アレイ。つまり、私が望む3つの値の代わりに9つの値が得られます。 私はこれを行う方法を考え出しました。参照用の回答として投稿する。 – recluze

関連する問題