php
  • javascript
  • jquery
  • 2012-04-05 18 views 1 likes 
    1

    フォーム要素を追加するためにjQueryを使用しています。ページ上に正しい値で表示されますが、フォームを送信すると、データはPHPバックエンドに表示されません。私はFirebugのPOSTデータを調べましたが、そこには表示されません。フォーム要素を追加するために使用しているjavascriptは次のとおりです。投稿されたデータに動的に追加されたフォームフィールドが表示されない

    $("#projectArray").append("<input type='text' name='data[Project][description]' value='"+projectDescription+"' id='test' />"); 
    

    誰もがこのようなものを実行していますか?私は他の投稿と思われますが、それらは誤植と思われます。私はこの行に何のタイプミスもありません。

    を編集してください:リクエストされたとおり、ここにフォームコードがあります。それはかなり大きな形であるので、私はそれをたくさん切った。誰かが完全なコードを望むなら、私はそれを貼り付けることができます。

    <form action="/learningexperiences/add" id="LearningexperienceAddForm" method="post" accept-charset="utf-8"> 
        <div style="display:none;"><input type="hidden" name="_method" value="POST"/></div> 
        <div class="input text"><tr><td><label for="LearningexperienceSubjectarea">Subject Area</label>&nbsp;&nbsp;</td><td><input name="data[Learningexperience][subjectarea]" maxlength="50" type="text" id="LearningexperienceSubjectarea"/></td></tr> 
    ... 
        <tr><td>Active</td><td><div class="cbx"><input type="hidden" name="data[Learningexperience][active]" id="LearningexperienceActive_" value="0"/><input type="checkbox" name="data[Learningexperience][active]" checked="checked" value="1" id="LearningexperienceActive"/></div></td></tr> 
    
        <tr><td colspan="2" style="vertical-align:middle;"><div id="projectArray"></div></td></tr> 
    
    ... 
        <input type="hidden" name="data[Learningexperience][id]" id="LearningexperienceId"/><tr><td colspan="2" style="vertical-align:middle;">&nbsp;</td></tr> 
    
    </table> 
    
    <table id="buttonsTable"> 
    <tr><td style="text-align:right;"><div style="margin-right:5px;"><div class="submit"><input name="cancel" type="submit" value="Cancel"/></div></div></td> 
    <td><div class="submit"><input type="submit" value="Save Record"/></div></form></td></tr> 
    </table> 
    

    編集2:私は、フォームエレメント(#LearningexperienceAddForm)に追加する私のアペンドタグを変更しました。なぜかわからないけど、それはその時点で働き始めた。

    +1

    フォームコードを投稿できますか? – Bot

    +2

    '#projectArray'が'

    'タグの内側にあると100%肯定的ですか? – DaveRandom

    +0

    フォームコードのトリムダウンバージョンを含むように更新されました。 #projectArrayはフォームタグの間に存在します。しかし考えました。フォームコードはCakePHPによって生成されます。 –

    答えて

    2

    私は、フォーム要素(#LearningexperienceAddForm)に追加するために、追加タグを変更しました。なぜかわからないけど、それはその時点で働き始めた。

    2

    代わりにHTML自体を追加するのは、私はそれを追加要素とその後、を作成するようにお勧めするつもりです:

    var input = document.createElement('input'); 
    input.name = 'data[Project][description]'; 
    input.type = 'text'; 
    input.value = projectDescription; 
    input.id = 'test'; 
    $('#projectArray').append(input); 
    

    は、これは、アクセスのためのDOMに挿入するのより良い仕事をします。

    これがうまくいくかどうか教えてください。

    +0

    これは要素を作成するより良い方法であると私は同意しますが、最終結果は同じであり、要素を作成する方法の違いは、それがポストデータに表示されない理由ではありません。 @DaveRandomに同意する傾向があります。これは、 'form'タグが付加されていない可能性が最も高いです。 –

    +0

    質問には関連しません。ほぼ真実ですが、必ずしもそうではありません。 –

    +0

    ポイントを獲得しました。またはむしろ、マイナス点を取った。 –

    3

    が同じ問題を抱えながら出てきました。私はあなたのタグがすべての外側にあることが必要だと確信しています。

    このような何か:これらのタグは、順不同でダイナミックなフィールドは投稿するためのピックアップされていないされている場合は、途中私の給与等級を超えている理由のため

    <form> 
    <table> 
    
    [add as many dynamic fields as you want] 
    
    </table> 
    </form> 
    

    ...

    希望この

    +0

    私も同じ問題がありました。私はhtmlを修正した後、正しく動作するようになりました – Vyacheslav

    0

    この問題を抱えている人は、クローズフォームタグで添付されたデータが囲まれていることを確認してください。閉じたタグをGoogle Chromeで置き換えた形の閉じたdivが1つありましたので、注意してください。

    0

    すべてのHTML要素タグを親切にチェックしてください フォーム間に(< ...>)と終了タグ()を開くことを意味します。 私はすべて管理された方法で私にすべきです。

    関連する問題