多选不起作用

时间:2013-08-14 10:05:09

标签: php jquery

我有一个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部分是 - &gt;

包括用于选择选项的数组

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 :(得分:0)

你绝对应该用英文写代码。

如果我正确理解你的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';
    }
}