2012-10-23 3 views
-1

PHP로 양식의 일부 필드를 동적으로 생성합니다 (여기서 전체 코드 http://jsfiddle.net/KBYC5/1/ 인 jsFiddle).JQuery를 사용하여 동적으로 생성 된 양식 필드로드

<?php 
      $contacts= array('CONTRACT MANAGER', 'MEDICAL DIRECTOR', 'UTILIZATION MANAGER', 'QUALITY IMPROVMENT MANAGER ', 'CHIEF MEDICAL DIRECTOR', 'CMO', 'AUTHORIZATION MANAGER', 'CUSTOMER SERVICE MANAGER'); 
      foreach ($contacts as $contact) //TODO add something to check if contact already exists and don't show checkbox if it does 
      { 
       echo "<li> 
         <label>" . ucwords(strtolower($contact)) . "</label>" . inp_return('contact[]', 45) . " <input type='hidden' value='$contact' name='title' /> 
         <ul> 
          <li><label> Rating: </label>" . inp_return('rating[]',3) . "</li> 
          <li><label>Phone: </label>" . inp_return('contact_phone[]',13, 'phone'). "</li> 
          <li><label>Ext: </label>" . inp_return('ext[]', 8) . "</li> 
          <li><label>Create Referral Contact</label> " . cbox_return('create_contact[]') . "</li> 
         </ul> 
         <div class='clear'></div> 
        </li> 
       "; 
      } 
     ?> 

볼 수 있듯이 각 입력란에는 $ contacts 값이 숨겨져 있습니다. 그런 다음 jQuery를 사용하여 숨겨진 입력 필드의 값을 확인하고 JSON 객체의 "title"속성과 비교 한 다음 동일하면 모든 양식 값을 채 웁니다 . 내 스크립트 부분은 여기에 있습니다 :

<script type='text/javascript'> 
var contacts = $.parseJSON('[{"id":1,"name":"TEST CONTACT","title":"CONTRACT MANAGER","rating":5,"phone":"(000)000-0000","ext":"1111","rfcode":"0000"}, 
{"id":2,"name":"TEST2 CONTACT","title":"MEDICAL DIRECTOR","rating":2,"phone":"(111)111-1111","ext":"2222","rfcode":"0000"}]'); 
$(document).ready(function() {$("#contracting_info ul li").each(function(){ 
    for (var i in contacts) 
     { 
      alert($(this).children("input[name='title']").val()); die; 
      var title = contacts[i].title 
      if (title == $(this).children("input[name='title']").val()) 
       alert('made it here'); 
     } 
    }); 
}); 

어떻게 (제목과 일치 숨겨진 제목 요소)를 JSON 배열의 값으로 각 목록 항목에 연락처 [] 요소를로드 할 수 있습니다? 예를 들어, 계약 관리자의 연락처 [] 필드에 TEST CONTACT가 있어야합니다.

+0

남자 나는 누군가가 단지 무작위로 질문을하고 설명을하지 않을 때가 싫다. – Mike

답변

0

다음은 내 문제를 해결하는 스크립트 섹션입니다.

<script type='text/javascript'> 
var contacts = $.parseJSON('<?php echo json_encode(sql::results("SELECT * FROM crm.dbo.managed_care_contacts where rfcode =" . hexstr($referral->get_id())));?>'); 
$(document).ready(function() { 

    $("#contracting_info li").each(function(){ 
     for (var i in contacts) 
     { 
      alert(contacts[i].title + ' ' + $(this).children("input[name='title']").val()); 
      var title = contacts[i].title 
      if (title == $(this).children("input[name='title']").val()) 
       { 
         $(this).children("input[name='contact[]']").val(contacts[i].name); 
         $(this).find("input[name='contact_phone[]']").val(contacts[i].phone); 
         $(this).find("input[name='ext[]']").val(contacts[i].ext); 
         $(this).find("input[name='rating[]']").val(contacts[i].rating); 


       } 
     } 
    });//close .each (for autofilling form 
}); 

</script> 

불행하게도, 내가 각 목록 항목 요소 (그래서 난 각 리튬 연락처 통해 반복 끝) 모든 연락처를 통해 다음 루프를 통해 루프를 의미합니다. 그래도 제대로 작동합니다.

json 객체 (양식 필드가 배열에 게시되는 곳)의 정보로 양식 필드를 동적으로 채우려는 다른 사용자에게 도움이되기를 바랍니다.

관련 문제