2013-09-16 4 views
0

검색 방법을 모릅니다. 이전에 질문을 받았다면 사과드립니다. 기본적으로 jQuery/AJAX/PHP를 사용하여 데이터베이스에 동적으로 저장하고 정보를 다시 가져옵니다. 양식을 저장하고 방의 ID를 가져온 다음 아이템의 ID를 저장하면 저장되지만 필요한 방법은 아이디 항목에 방 ID를 동적으로 저장하여 모든 링크를 데이터베이스에 저장합니다. 내가 할 수있는 모든 것을 설명하려고 노력할 것이다.요소의 속성을 동적으로 가져 오는 중?

<div id="formHolder" rel="1"> 
      <form class="rooms"> 
       <label>Room</label> 
       <input type="text" name="roomName[]"> 
       <input type="hidden" class="roomId" name="roomId[]"> 
       <input type="hidden" class="inventoryId" name="inventoryId[]" value="<?=$_GET['inventory_id']?>"> 
       <div class="saveRoom">Save Room</div> 
      </form> 
      <div class="addItem"> 
       <form class="items"> 
        <label>Item</label> 
        <input type="text" name="itemName[]"> 
        <label>Description</label> 
        <textarea name="itemDescription[]"></textarea> 
        <label>Condition</label> 
        <select name="itemCondition[]"> 
         <option value="Good">Good</option> 
         <option value="Adequate">Adequate</option> 
         <option value="Poor">Poor</option> 
        </select> 
        <input type="hidden" class="itemId" name="itemId[]" value=""> 
        <input type="hidden" name="itemInventoryId[]" value="<?=$_GET['inventory_id']?>"> 
        <input type="hidden" name="itemParent[]" value=""> 
        <div class="saveIcon" style="display: none; color: green;">SAVED!</div> 
        <div class="save">Save Item</div> 
       </form> 
      </div> 
      <div id="addItem">Add another item</div> 
     </div> 

이것은 내가 사용하고있는 기본 양식입니다. 내 계획은 여기에 방의 ID를 rel 속성에 저장 한 다음 추가 된 각 항목이 거기에서 해당 ID를 가져 오지 만 단순히 수행하는 방법을 찾지 못합니다.

$('#addItem').on('click', function(){ 
      $('<form class="items">\ 
       <label>Item</label>\ 
       <input type="text" name="itemName[]">\ 
       <label>Description</label>\ 
       <textarea name="itemDescription[]"></textarea>\ 
       <label>Condition</label>\ 
       <select name="itemCondition[]">\ 
        <option value="Good">Good</option>\ 
        <option value="Adequate">Adequate</option>\ 
        <option value="Poor">Poor</option>\ 
       </select>\ 
       <input type="hidden" class="itemId" name="itemId[]" value="">\ 
       <input type="hidden" name="itemInventoryId[]" value="<?=$_GET["inventory_id"]?>">\ 
       <input type="hidden" name="itemParent[]" value="'$(this).parent().parent().attr('rel');'">\ 
       <div class="saveIcon" style="display: none; color: green;">SAVED!</div>\ 
       <div class="save">Save Item</div>\ 
      </form>').fadeIn(500).appendTo('.addItem'); 
     }); 

당신은 내가 $(this).parent().parent().attr('rel');를 사용하여 시도했지만 그건 내가 난처한 상황에 빠진 오전 작동하지 않습니다 볼 수 있습니다. 나는 여기서 잠시 와플을 했어. 누구나 나와 채팅을하고 싶다면, 시간 내 주셔서 감사합니다.

+5

해결 방법은 .parent(), parent()와 같은 사용자를 절대 생성하지 않습니다. 어느 날 당신의 코드가 번식 할 것입니다. 그리고 왜 당신은 궁금해하는 시간을 보냅니다. – bitoiu

+0

@bitoiu - 귀하의 의견을 천 번 +1하고 싶습니다. – EkoostikMartin

+0

고마워요, 좋은 충고 :) –

답변

1

괜찮 으면 좋겠지 만, 너무 많은 레벨을 올라갈 것입니다! rel ATTR과 함께 DIV가없는 부모의 부모, 단지 parent입니다 :

$(this).parent().attr('rel'); 

또는 부모가 ID (더 나은 고유!)이 있기 때문에 :

$("#formHolder").attr("rel"); 
+0

은 2 초를 제공합니다.) –

+0

그게 효과가있는 것 같습니다 :) 나는 DOM 트리에 혼란스러워하고 다른 레벨을 올라갈 예정이었다고 생각했습니다! 다른 동적 인 것들을 재빨리 시험해 보려하지만 이것에 대한 도움을 주셔서 감사합니다 –

+0

아무런 문제가 없습니다. 나중에 답변을 수락하십시오 : D – tymeJV

0

이에 의미를 " #addItem "div와"rel "은 직계 부모의 속성이므로 그냥해야한다고 생각합니다.

$(this).parent().attr('rel'); 
관련 문제