-1

私は次のようにcodeigniterフレームワークで配列を送信しました:

for (var i=1; i<=selected; i++) {
           <div style="float: left; padding-left: 13px; padding-right: 12px; padding-top: 7px; margin-top: 0px;">'+i+'
</div>
<input type="text" name="unitName[]" id="unitName'+i+'" style="width:189px;" required />
<input type="text" name="ownerName[]" id="ownerName'+i+'" style="width:241px;" />
<input type="text" name="salutation[]" id="salutation'+i+'" style="width:137px;" /><br />
       }

次を使用して投稿しようとすると:

$ownerNames = $this->input->post('ownerName');
if (is_array($ownerNames)) {
    foreach( $ownerNames as $ownerName ) {
    echo "Owner Name is : " . $ownerName;
    }
} else {echo "Owner is not array";}

これは私のコントローラー全体であり、すべての投稿が含まれています。

if ($this->form_validation->run() == FALSE) {
                    $this->load->view('newblock');
                } else {
                    $registrarName = $this->input->post('registrarName');
                    $blockName = $this->input->post('blockName');
                    $serviceType = $this->input->post('serviceType');
                    $number = $this->input->post('number');
                    $email = $this->input->post('email');
                    $address1 = $this->input->post('address1');
                    $address2 = $this->input->post('address2');
                    $address3 = $this->input->post('address3[]');
                    $town = $this->input->post('town');
                    $postCode = $this->input->post('postCode');
                    $blockUnits = $this->input->post('blockUnits');


                    echo print_r($_POST);

                    $unitNames = $this->input->post('unitName', TRUE);
                    echo $unitNames[0].'<br />';
                    if (is_array($unitNames)) {
                        foreach( $unitNames as $unitName ) {
                        echo "unit Name is : " . $unitName;
                        }
                    } else {
                        echo "unit is not array";
                    }


                    $ownerNames = $this->input->post('ownerName', TRUE);
                    echo $ownerNames[0].'<br />';
                    if (is_array($ownerNames)) {
                        foreach( $ownerNames as $ownerName ) {
                        echo "Owner Name is : " . $ownerName;
                        }
                    } else {
                        echo "Owner  is not array";
                    }


                    $salutations = $this->input->post('salutation', TRUE);
                    echo $salutations[0].'<br />';
                    if (is_array($salutations)) {
                        foreach( $salutations as $salutation ) {
                        echo "salutation is : " . $salutation;
                        }
                    } else {
                        echo "salutation  is not array";
                    }

「所有者はアレイではありません」と表示されています。これは、配列が空であることを示しています。print_rを使用してデバッグした後、その配列は実際に空であり、何も投稿されていません。

4

1 に答える 1

6

これを試して

テストコントローラー

  $ownerNames = $this->input->post('ownerName');
  if (is_array($ownerNames)) {
    foreach ($ownerNames as $ownerName => $k) {
      echo "Owner Name is : " . $k . "<br/>";
    }
  } else {
    echo "Owner is not array";
  }

とテストビュー

<form method="post">
  <input type="text" name="ownerName[]" />
  <input type="text" name="ownerName[]" />
  <input type="text" name="ownerName[]" />
  <input type="submit" value="ownerName" />
</form>

// 出力

Owner Name is : name1
Owner Name is : name2
Owner Name is : name3
于 2013-03-21T07:47:40.523 に答える