javascript 更改ajax调用复选框

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/26065161/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 05:26:46  来源:igfitidea点击:

checkbox on change ajax call

javascriptphpjqueryajax

提问by Muhammad Atiq

I have one checkbox. I want when I checked the checkbox so I get the 1 and then update a mysql query through that get value. I also want if I unchecked the checkbox so I get a value 0 so then I again update the mysql query. Help me. it should be done with ajax call. code will be in PHP.

我有一个复选框。当我选中复选框时,我希望得到 1,然后通过该获取值更新 mysql 查询。如果我取消选中该复选框,我还想得到一个值 0,然后我再次更新 mysql 查询。帮我。它应该通过ajax调用来完成。代码将在 PHP 中。

HTML code

HTML代码

<input type="checkbox" name="action1" id="action1" title="Action 1" value="1" onclick="return Populat_Industry('set_home_vid.php');"/>

ajax call

ajax调用

<script>
function Populat_Industry(url){
    var value=$(#action1).val();
    $.ajax({
   type: "POST",
   url: url,
   async: true,
   data: "value="+value,
   success: function(msg){
      //alert('Success');
       if(msg !='success'){
        //alert('Fail');
       } 
   }
});
}

</script>

PHP code

PHP代码

if($_POST['action1']=='1'){
$query= mysql_query("UPDATE homevideos SET is_active = '1
}
else{
mysql_query("UPDATE homevideos SET is_active = '0')
echo 'success';

回答by Ehsan Sajjad

Ajax call is async. you cannot use returnwith it this way. Write checkbox change event in jquery and send ajax call.

Ajax 调用是异步的。您不能return以这种方式使用它。在 jquery 中编写复选框更改事件并发送 ajax 调用。

Do like this:

这样做:

HTML:

HTML:

<input type="checkbox" name="action1" id="action1" title="Action 1" value="1"/>

JQUERY:

查询:

$("#action1").change(function () {
    var value = $(this).val();
    $.ajax({
        type: "POST",
        url: "set_home_vid.php",
        async: true,
        data: {
            action1: value // as you are getting in php $_POST['action1'] 
        },
        success: function (msg) {
            alert('Success');
            if (msg != 'success') {
                alert('Fail');
            }
        }
    });
});

回答by Sharad Kale

HTML :

HTML :

<input type="checkbox" name="action1" id="action1" title="Action 1" value="1" url="set_home_vid.php" />

JQuery:

查询:

<script>
     $("#action1").change(function(){
           var value = $(this).val();
           var url = $(this).attr("url"); 
           $.ajax({
               type: "POST",
               url: url,
               data: "value="+value,        //POST variable name value
               success: function(msg){
                    if(msg =='success'){
                        alert('Success');
                    } 
                    else{
                        alert('Fail');
                    }
               }
           }); 
     }); 
</script>

PHP:

PHP:

     if($_POST['value']==1){  //as used variable name "value" in ajax post data
          $query= mysql_query("UPDATE homevideos SET is_active = 1"); //query was incomplete and missing ";"
          echo 'success';
     }
     else{
          mysql_query("UPDATE homevideos SET is_active = 0); // missing ";"
          echo 'success';
     }

回答by MikeVelazco

Maybe you could use the .isjquery method

也许你可以使用.isjquery 方法

something like this:

像这样:

$("#i").bind("change",function(){
    if($(this).is(":checked"))
        // set value for ajax
    else
       // set another value for ajax
    // ajax code here
});
$("#i").bind("change",function(){
    if($(this).is(":checked"))
        // set value for ajax
    else
       // set another value for ajax
    // ajax code here
});

回答by Brian Bolli

You forgot to put quotes around your call to get the input value:

您忘记在您的电话周围加上引号以获取输入值:

var value=$("#action1").val()