2012-04-05 4 views
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)에 추가 내 APPEND 태그를 변경했습니다. 이유는 모르겠지만 그 시점에서 작동하기 시작했습니다.

+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> 

...

희망이 누군가에게 2 시간을 절약 해줍니다 .-)

+0

나는 같은 문제가 있었다. 나는 html을 고쳤다. 그리고 그 후에 그것은 올바르게 작동하기 시작했다. – Vyacheslav

0

이 문제가 발생한 사람은 폐쇄 된 양식 태그가 첨부 된 데이터를 포함하는지 확인하십시오. Chrome 크롬을 닫는 태그로 대체 한 양식의 닫는 div가 너무 많아서 조심하십시오.

0

친절하게 모든 html 요소 태그를 확인하십시오. 양식 사이에 여는 (< ...>) 및 닫는 태그()를 의미합니다. 모두 나를 관리해야합니다.

관련 문제