2009-10-16 5 views
1

이름과 값이 모두 변수 인 jQuery에서 $ .post 개체를 사용하여 PHP 스크립트에 name : value 쌍을 보내려고합니다. FF로 콘솔에 변수를 보냈는데 제대로 설정되어 있다는 것을 알았으므로 헤더를 보았을 때 값 변수 만 올바르게 평가되고 이름은 변수의 리터럴 문자열로 전송됩니다. 이름. 그래서, 헤더가 전송되는 jQuery를 전달하는 데 문제가 있습니다. 매개 변수로 변수를 붙여 넣습니다.

$(document).ready(function() { 
    $('#formS form fieldset > input').blur(function() { 
    if($(this).val()=='' && $(this).prev().is('img')) { 
    $(this).prev().remove(); 
    return; 
    } 

    if((($(this).is('#formS form fieldset > input[id*=mail]')) || 
    ($(this).is('#formS form fieldset > input[id*=sername]'))) && 
    ($(this).val()!="")) { 
     var email_field = $(this); 
     if(!$(this).prev().is('img')){ 
     $('<img src="" alt="" style="width: 16px; height: 16px;" />').insertBefore(this); 
     } 
     var type = ($(this).is('input[id*=sername]'))?'username':'email'; 
     var value = $(this).val(); 
     $.post('checkemail.php5', {type:value}, function(data) { 
       if(data == "free") { 
     email_field.prev().attr('src','/images/greentick.png').attr('alt','available'); 
     } else if(data == "taken") { 
     email_field.prev().attr('src','/images/redcross.png').attr('alt','taken'); 
     } else { 
      console.log('hmmm'+data); 
     } 
     }); 
     } 
     }); 
}); 

가 평가 리터럴 문자열 유형, 무엇이든지 있습니다 : 여기에 그 전체의 기능입니다. 왜 아무 생각 없어?

답변

8

구문 {} 이름의 세트 걸리므 : . 당신이 보는대로 이름이 개체의 재산이 값이 리터럴과 변수가 될 수 없습니다이 사용합니다.

var params = {}; 
params[type] = value; 

을 대신의 PARAMS을 통과 {유형 : 값}

+0

대단히 감사합니다. 완벽하게 작동했습니다. 그래서 간단히 $ .post 함수 밖에서 리터럴을 정의하도록합시다. – user97410

+0

params에 많은 이름 값 쌍을 생성하고 모두 전달하여 호출 된 스크립트의 PHP 전역 전역 배열과 매우 비슷하게 액세스 할 수 있습니까? – user97410

+1

예, 다음과 같이 원하는만큼 많은 변수를 전달할 수 있습니다. params 객체의 속성으로 params.foo = bar 또는 내가 준 구문을 사용하여 변수를 추가하기 만하면됩니다. –

0

나는 당신의 문제가 무엇인지 모르겠다. 그것은 나에게 분명하지 않다. 나는 PHP에서 많은 지식도 가지고 있지 않지만 다음과 같이 시도해 볼 수 있습니다.

var type = ($ (this)) .is ('input [id * = sername]')) 'username': '이메일'; var value = $ (this) .val(); var data = type + "="+ value; 최고의

$ .post ('checkemail.php5'데이터 기능 (데이터) {.........

,

+0

두 콜레트를 함께 연결하려고했는데, 그 대신에 콜론이 필요했습니다. 그 콜론은 equals가 아닌 두 콜레트를 연결하여 두려워졌습니다. – user97410

0

정확히 내가 뭘 찾고 있었는지 다 rk 팔콘, 고마워!

이 솔루션을 찾기가 어려웠습니다. 나는 대부분의 사람들이 단지 폼 데이터를 직렬화하고 그것을 post param으로 보내고 있다고 가정하지만, 어떤 경우 변수 이름 => 가변 값 쌍을 사용하는 것이 좋다. 변수가 작동 중임

관련 문제