2017-02-08 4 views
-1

私の問題は、POSTの形式がhtml5であり、隠れた入力の値が間違っています。しかし、より多くの情報が役に立つかもしれません。POST formularが隠れた入力の間違った値を投稿しています

だから、

function changeActivity() { 
 
    if(document.getElementById('input.edit.user.activity').value=="0"){ 
 
     document.getElementById('input.edit.user.activityButon').className="btn-block btn-lg btn-danger"; 
 
     document.getElementById('input.edit.user.activityButon').innerHTML="Mark user as inactive"; 
 
     document.getElementById('input.edit.user.activity').value="1"; 
 
    }else{ 
 
     document.getElementById('input.edit.user.activityButon').className="btn-block btn-lg btn-success btn-block"; 
 
     document.getElementById('input.edit.user.activityButon').innerHTML="Mark user as active"; 
 
     document.getElementById('input.edit.user.activity').value="0"; 
 
    } 
 
}
<form action="" method="post"> 
 
    <input type="hidden" name="user_activity" id="input.edit.user.activity" value="1"> 
 
    <button class="btn-block btn-lg btn-danger btn-block" type="button" onclick="changeActivity()" id="input.edit.user.activityButon" style="border-style: none">Mark user as inactive</button> 
 
    <button class="btn-block btn-lg btn-primary" type="submit" style="border-style: none;margin-bottom: 0.3%;">Update user</button> 
 
</form>

、私はPHPで$_POST['user_activity']常に0(String)を提出し `。

編集:それは何だったのか分かりませんが、今は動作します!

+1

を変更してください。 –

+0

正しく動作していれば、input.edit.user.activityを確認できます関数をconsole.log(document.getElementById( 'input.edit.user.activity')。value)で使用します。 –

+0

あなたはあなたがページを提出したときにページを再読み込みし、入力値0を再び設定するので、別のページを投稿することができます。 –

答えて

0

は問題ありません。しかし、古いブラウザを使用している場合、動作しない可能性があります。 idにドット(。)を使うのは良い習慣ではありません。なぜなら、(。)は、通常、CSSとJavaScriptでclassとともに使用されるからです。それはとにかく動作しますが、それは良い習慣ではありません。したがって、古いブラウザを使用している場合は、入力エレメント内のidからJavaScript関数の

+0

あなたは今や明確ですか? –

関連する問題