2013-08-14 3 views
0

사용자의 프로필 데이터를 업데이트하는 옵션 양식이 select이지만이 코드를 실행하면 첫 번째 변수 만 업데이트됩니다. 어떤 해결책을 주시겠습니까?복수 선택이 작동하지 않습니다.

JQ(function($) { 
    $("#Nazione,#Regione,#Etta,#Altezza,#Peso").on("change", function() { 
     $.ajax({ 
      type: "POST", 
      url: "/ajax/aggiornaProfilo.php", 
      cache: false, 
      data: $("#Nazione,#Regione,#Etta,#Altezza,#Peso").serialize(), 
      beforeSend: function (xhr) { 
       $("#res").delay(600).fadeIn(300).html('<img src="css/loaders/loader1.gif">'); 
      } 
     }) 
     .done(function(respN) { 
      $("#res").fadeOut('fast'); 
      $.pnotify({ 
       icon:false, 
       sticker: false, 
       text:respN 
      }); 
     }) 
    }); 
}); 

선택 옵션

DataArrays(); 

global $Nazioni,$Regioni,$Etta,$Altezza,$Peso,$Corporatura,$Seno; 

$Naz = @$_POST["Nazione"]; 
$reg = @$_POST["Regione"]; 
$ett = @$_POST["Etta"]; 
$alt = @$_POST["Altezza"]; 
$pes = @$_POST["Peso"]; 
$cor = @$_POST["Corporatura"]; 
$sen = @$_POST["Seno"]; 



if(isset($Naz)){ 
     $validateNaz = array_search($Naz, $Nazioni); 
     if($validateNaz){ 
      if(mysqli_query($db,"UPDATE profili SET Nazione='$Naz' WHERE user='$userSession' LIMIT 1")){ 
       echo 'nazione aggiornata con successo'; 
      }else{ 
       echo 'errore'; 
      } 
     }else{ 
      echo 'errore'; 
     } 
    }else 
if(isset($reg)){ 
     $validateReg = array_search($reg, $Regioni); 
     if($validateReg){ 
      if(mysqli_query($db,"UPDATE profili SET Regione='$reg' WHERE user='$userSession' LIMIT 1")){ 
       echo 'regione aggiornata con successo'; 
      }else{ 
       echo 'errore1'; 
      } 
     }else{ 
      echo 'errore2'; 
     } 
    }else 

    if(isset($ett)){ 
     $validateett = array_search($ett, $Etta); 
     if($validateett){ 
      if(mysqli_query($db,"UPDATE profili SET Etta='$ett' WHERE camgirl_profilo='$userSession' LIMIT 1")){ 
       echo 'etta aggiornata con successo'; 
      }else{ 
       echo 'errore etta'; 
      } 
     }else{ 
      echo 'errore etta'; 
     } 
    } 
+1

무엇을하려고하고 무엇이 문제인지 제대로 설명하십시오. 코드는 변수를 선언하지 않기 때문에 "첫 번째 변수"가 무엇인지 알 수 없습니다. –

+0

당신의 HTML은 무엇입니까? 그리고 더 좋은 방법은, 모든 이드들을 ​​하나의 클래스에 회귀시키는 것입니다. – M1K1O

+0

모든 선택 옵션을 볼 수 있습니다 –

답변

0

당신은 가장 확실히 영어로 코드를 작성해야에 대한 배열을 포함하여 PHP 부분은 ->

: 감사는 사전에 여기 내 코드입니다.

만약 내가 당신의 PHP 코드를 정확하게 이해한다면 왜 첫 번째 값만이 db에서 업데이트되는지 분명합니다.

if/elseif 구조 때문입니다. 따라서 첫 번째 조건이 참이라면 다른 조건은 실행되지 않습니다.

조건에 따라 3으로 변경하고 다른 오류가없는 경우 작동해야합니다.

if(isset($Naz)){ 
    $validateNaz = array_search($Naz, $Nazioni); 
    if($validateNaz){ 
     if(mysqli_query($db,"UPDATE profili SET Nazione='$Naz' WHERE user='$userSession' LIMIT 1")){ 
      echo 'nazione aggiornata con successo'; 
     }else{ 
      echo 'errore'; 
     } 
    } else { 
     echo 'errore'; 
    } 
} 

if(isset($reg)){ 
    $validateReg = array_search($reg, $Regioni); 
    if($validateReg){ 
     if(mysqli_query($db,"UPDATE profili SET Regione='$reg' WHERE user='$userSession' LIMIT 1")){ 
      echo 'regione aggiornata con successo'; 
     } else { 
      echo 'errore1'; 
     } 
    }else{ 
     echo 'errore2'; 
    } 
} 

if(isset($ett)){ 
    $validateett = array_search($ett, $Etta); 
    if($validateett){ 
     if(mysqli_query($db,"UPDATE profili SET Etta='$ett' WHERE camgirl_profilo='$userSession' LIMIT 1")){ 
      echo 'etta aggiornata con successo'; 
     } else { 
      echo 'errore etta'; 
     } 
    } else { 
     echo 'errore etta'; 
    } 
} 
+0

3로 변경 하시겠습니까? – Alex

+0

코드가 추가되었습니다. –

+0

언어에 대해 유감스럽게 생각합니다. 작동하는 경우 이제 시도해 봅니다. – Alex

관련 문제