2014-03-03 4 views
0

일부 열이있는 사이트가 있고 그 열은 textarea로 편집 할 수 있습니다. 편집하려는 열에 일부 콘텐츠가 있으면 이전 콘텐츠가 텍스트 영역에 입력됩니다. 그런 다음 저장 버튼에서 해당 텍스트 영역의 값을 변수에 저장합니다.이 변수에 경고하면 이전 내용과 동일한 값을 경고합니다.jquery textarea가 해당 값을 업데이트하지 않습니다.

아이디어는 biscally입니다이 : FIDDLE 텍스트 영역이 사업부를 업데이트하고

당신은 저장하고 편집을 쳤을 때 사업부의 콘텐츠를 쳤을 때. 이 간단한 작업을해야하지만, 내 코드와 함께 trupple 데, 그리고 내가 오류를 찾을 수 없습니다. 콘솔에도 오류가 없습니다.

제가 만든 exmaple에 대한 차이점과 제 문제의 장소는 제가 오래된 콘텐츠를 얻기 위해 ajax 호출을 사용한다는 것입니다. 여기에 첫 번째

는 편집 클릭에 일어나는 것이다 :

$('body').on('click', '.edit_column', function() {  

    column_to_edit = $(this).parent().parent().attr('id'); 
    current_step = "edit"; 

    $.ajax({ 
      url: 'pageEditor_ajax.php', 
      dataType: 'json', 
      async: false, 
      type: 'post', 
      data: { 
       item_id: column_to_edit, 
       mode: "edit_item" 
      }, success:function(s) { 
       element_type = s.type; 
       old_content = s.content; 
      }, error:function(e) { 
       alert('Error!'); 
      } 
     }); 

    if(element_type == 'text') { 
     $('.input_type').html('<textarea class="dialog_editor element_content"></textarea>'); 
    } 


    $('.element_content').val(old_content); 

    $('.column_tool_dialog').css('display', 'block'); 
    $('#edit_column_dialog').css('display', 'block'); 
    $('#edit_column_dialog').animate({ 
     left: "-=300px", 
     opacity: "1" 
    },500); 
}); 

먼저 내가 편집하고자하는 열의 ID를 찾을 그래서 오른쪽 열에 내가 데이터베이스를 편집 메신저 슈어입니다.

current_step 변수는 외모에 대해서만 사용되고 다른 대화 상자가 있습니다.

내가 성공으로 돌아 오는 나의 아약스 전화를합니다.

그렇다면 어떤 유형의 열인지 확인하기 위해 if 문을 사용합니다. 3 가지 유형이 있으며, 다른 두 가지는 이미지와 헤드 라인입니다. 아직 시작되지 않았으므로 아직 시작 표시가 없습니다.

if 문은 입력을 작성하여 해당 유형의 열을 편집해야합니다.

입력 필드에 build가 old_content를 텍스트 영역에 넣은 후에도 제대로 작동합니다. 마지막 몇 줄은 look agen이 다음 대화 상자로 이동하는 것입니다. 그래서 내 편집 단계가 작동합니다 (제 생각 엔).

그러면 텍스트 영역이 표시되고 이전 내용이 있습니다. 난 그냥 외모에 대한 많은 것들을 가지고이 단계에서는

$('#element_edit_button').click(function(e) { 

    e.preventDefault(); 

    new_content = $('.element_content').val(); 

    alert(new_content); 

    $.ajax({ 
      url: 'pageEditor_ajax.php', 
      dataType: 'json', 
      async: false, 
      type: 'post',   
      data: { 
       item_id: column_to_edit, 
       item_content: new_content, 
       col_type: element_type, 
       mode: "save_item", 
       item_attr_alt_tag: alt_tag, 
       item_attr_title_tag: title_tag 
      }, success:function(s) { 
      }, error:function(e) { 
       alert('Der skete en fejl!'); 
      } 
    }); 


    $('li#'+column_id+' .preview_content').html(new_content); 
    $('li#'+column_id+' > div > small').html(new_content); 
}); 

을, 그래서 나는 그들에게이 시간을 제외한 : 당신은 저장 버튼을 클릭하면이 문제가 발생합니다. 그러나 문제는 여기에서 설명하는 것이 매우 간단합니다. new_content 변수는 old_content와 동일합니까? 그래서 모든 장소에서 new_content를 사용하면 업데이트되지 않습니다. 긴 게시물에 대한 죄송합니다

<div id=\"edit_column_dialog\" class=\"column_tool_dialog_box\"> 
        <div class=\"close\">x</div> 
         <h3>Rediger dit element</h3> 
         <form method=\"post\" id=\"save_element\"> 
          <p class=\"error_message\"></p> 
          <div class=\"input_type\"></div> 
          <input id=\"element_edit_button\" class=\"green dialog_button\" type=\"submit\" value=\"Gem element\" /> 
         </form> 
        </div> 
       </div> 

가, 누군가가 awnser이 희망 :

편집 여기에 모든 일이 html로입니다.

+0

관련 HTML도 게시해야합니다. 그러면 질문에 대한 신속한 답변을 얻을 수 있습니다. – Tomanow

+0

좋아요, 제 질문을 HTML – Legarndary

+0

으로 업데이트했습니다. 여기에 약간의 논리가 있기 때문에 ... –

답변

0

다른 사람들이 말했듯이 jquery와 html도 일부 정리를 사용할 수 있습니다. 그게 내가 제대로 질문을 이해 가정 말한다면, 나는 당신이 당신의 #element_edit_button 클릭 이벤트에서 선을 놓치고 생각 :

$('.element_content').val(new_content); 

트릭을해야한다고.

관련 문제