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
            });
        })
    });
});

そしてphp部分は->

選択オプションの配列を含む

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';
        }
    }
4

1 に答える 1

0

コードは必ず英語で書くべきです。

あなたのphpコードを正しく理解していれば、データベースで最初の値だけが更新される理由は明らかです。

これは、if/elseif コンストラクトが原因です。したがって、最初の条件が true の場合、他の条件は実行されません。

これを if 条件を 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';
    }
}
于 2013-08-14T10:19:27.247 に答える