2012-10-23 66 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陣列(其中標題匹配題隱藏元素)的值加載接觸[]元素?例如,我希望合同經理的聯繫人[]字段中包含測試聯繫人。

+0

男人我討厭當一個人隨機-1是一個問題,並沒有給出任何解釋。 – 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> 

不幸的是,這意味着我通過各列表項元素,然後通過所有的(所以我最終通過接觸循環每個LI)接觸的循環必須循環。它雖然工作正常。

希望這可以幫助其他人嘗試使用json對象(表單域發佈到數組)的信息動態填充表單域。