0

私は既存のプロジェクトに取り組んでいます。次のような多くの形式があります。

<?php echo $form->create('MyForm', array('id' => 'MyFormId')); ?>

  <?php echo $form->input('User.0.username', array( 'label' => false, )); ?>
  <?php echo $form->input('User.0.location', array( 'label' => false, )); ?>

<?php echo $form->end(); ?>

次のようなフォーム要素を生成しています。

<input type="text" id="User0Username" name="data[User][0][username]">
<input type="text" id="User0Location" name="data[User][0][location]">

Bu 私は彼らがこのように見えるようにしたい:

<input type="text" id="User0Username" name="User_0_username">
<input type="text" id="User0Location" name="User_0_location">

$form->create();フォーム要素を変更する代わりに、この html を取得する関数オプションはありますか?

ありがとう

4

2 に答える 2

1
The Form helper is pretty smart. Whenever you specify a field name with the form helper methods, it'll automatically use the current model name to build an input with a format like the following:

    <input type="text" id="ModelnameFieldname" name="data[Modelname][fieldname]">

Modelname.fieldname を最初のパラメーターとして渡すことで、モデル名を手動で指定できます。

echo $this->Form->input('Modelname.fieldname');

同じフィールド名を使用して複数のフィールドを指定する必要がある場合、saveAll() で一度に保存できる配列を作成するには、次の規則を使用します。

<?php
echo $this->Form->input('Modelname.0.fieldname');
echo $this->Form->input('Modelname.1.fieldname');
?>

<input type="text" id="Modelname0Fieldname" name="data[Modelname][0][fieldname]">
<input type="text" id="Modelname1Fieldname" name="data[Modelname][1][fieldname]">
于 2012-09-04T09:40:10.803 に答える
0

jquery ajax submit の場合でも、常にブラケット バージョンを使用します。ちなみに、このように動作します:

var ids = new Array();
var myCheckboxes = new Array();
$("#ProductCalculation input:checked").each(function() {
    ids.push($(this).val());
});
...
$.ajax({
    dataType: 'json',
    type: "post",
    data: {
        'data[Product][product_calculation_id]': ids, 
        'data[Product][brand_id]': brands, 
        'data[Category][Category]': categories, 
        'data[Form][connect]': c
    },
    url: targeturl,
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    },
    success: function(html) {
        ...
    }
});

フォーム要素を手動で取得できます。理想的ではありませんが、ケーキスタイルのコーディングを壊すことはありません

また、何らかの方法でこれを自動的に作成する jquery プラグインを作成できると確信しています。それは実際には非常に興味深いことです。

于 2012-09-04T09:57:05.447 に答える