2013-10-21 2 views
0

를 통해 양식을 제출 중은 여기이 내 목적을 위해 작동하는 내 코드는 JSON/아약스/JQuery와

function generate_clicked() 
    { 
     var txt_text_color = $('#txt_text_color').val(); 
     var url='process.php?'; 
     url+='txt_text_color='+encodeURIComponent(txt_text_color); 


     $.ajax({ 
      url: url, 
      beforeSend: function (xhr) { 
      xhr.overrideMimeType("application/json; charset=x-user-defined"); 
      } 
     }).done(function (data) { 
      try{ 
       $('#preview').val(data.css); 
       $('#my_iframe').srcdoc = data1; 
       } 
      catch(err) 
      { 
       console.log(err); 
      } 
      document.getElementById("my_iframe").src = data.live_preview_html_page; 
     }); 

    } 

하지만 난 다른 폼 요소를 추가 한 경우 나는 tediousily VAR 예를 추가해야합니다 ... . '). val(); 및 URL + = '예'+ endcodeU ..... 나는 100 개 이상의 요소를 낳게 될 것이다

, 그때 내가

$txt_text_color = $_REQUEST['txt_text_color']; 

내 질문은과 과정을 retreview 얼마나 내가 할 수있는 이것을 직렬화하여 (이렇게해야한다고 생각합니다.) 새로운 폼 객체를 만들 때마다 그 두 가지 변수 이름을 쓸 필요가 없습니다.

나는 그들을 사용하기 위해 process.php에 그 varibles를 가져오고/저장해야합니다.

죄송합니다. 이것이 의미가 없으면 여전히 배우고 있습니다.

+0

는 기본적으로 페이지에 양식 유효성 검사를 추가하기 위해 노력하고 있습니까? –

+1

왜 .ajax()의'data' 기능을 사용하지 않을까요? 당신은 자바 스크립트 배열/객체를 제공하기 만하면 POST body 나 GET 쿼리 문자열로 변환 해 줄 것이다. –

+0

마크 B는 어떻게 쓰겠습니까? 아니요 Jamie, 변수를 전달하려고하는데 사용자 정의 코드가 생성됩니다. – user2726228

답변

1

해보십시오 form.serialize() http://api.jquery.com/serialize/

당신의 코드는 다음과 같이 보일 것이다 :

function generate_clicked() 
{ 
    var formData = $('#form').serialize(); 
    var url='process.php?'; 
    url+=formData; 


    $.ajax({ 
     url: url, 
     beforeSend: function (xhr) { 
     xhr.overrideMimeType("application/json; charset=x-user-defined"); 
     } 
    }).done(function (data) { 
     try{ 
      $('#preview').val(data.css); 
      $('#my_iframe').srcdoc = data1; 
      } 
     catch(err) 
     { 
      console.log(err); 
     } 
     document.getElementById("my_iframe").src = data.live_preview_html_page; 
    }); 

} 
+0

내가 뭘하려고했는지 정말 고마워! – user2726228