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 代码,那么很清楚为什么只有第一个值在 db 中更新。

这是因为您的 if/elseif 构造。因此,如果第一个条件为真,则不会执行其他条件。

将其更改为三个 if 条件,如果没有其他错误,它应该可以工作。

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 回答