如何通过下拉列表更新数据库而无需重新加载页面

时间:2014-04-21 11:56:08

标签: javascript php mysql

请先查看此代码:

$(document).ready(function() {
$("#alternatecolor [type=button]").each(function() {
    $(this).on('click', function() {
        btnObj = $(this);
        rowId = $(this).attr("rowId");
        changeStatus = $(this).attr("changeStatus");
        $.get("changeStatus.php?rowId="+rowId+"&changeStatus="+changeStatus,function(data,status){

                                    if(changeStatus == 0){
                str ="Unverify";
                btnText = "Verify";
                newStatus = 1;
            }
            else{
                str ="Verify";
                btnText = "Unverify";
                newStatus = 0;
            }

            if(data == 'success'){                  
                alert("Status updated successfully to "+str+".");
                btnObj.val(btnText);
                btnObj.attr("changeStatus",newStatus);
            }
            else{
                alert("some error");
            }
        });
    });
});
});
</script>

这是我的更改状态页面:

$dbhost = 'xxxxxx';
$dbuser = 'xxxxxxx';
$dbpass = 'xxx';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
mysql_select_db('xxxxxxxx');

$sql ="update experiment set verification=".$_GET['changeStatus']." where row=".$_GET['rowId'];

$retval = mysql_query( $sql, $conn );

if(!($retval))
{
  die('error');
}
else{
    echo "success";
}
mysql_close($conn);

我在此代码中使用了一个按钮来查询值为0,1的数据库。如果按一次,则数据库查询为1,如果再次按下,则数据库查询为0。

现在,我必须使用下拉列表代替具有3个值的按钮来查询数据库:0,1,2。如果选择第一个值,则要使用值0更新数据库行,依此类推。

我该怎么做?

3 个答案:

答案 0 :(得分:0)

删除按钮并添加如下选择:

<select class="my-select">
<option value="0">update</option>
<option value="1">create</option>
<option value="2">delete</option>
</select>

您还需要添加data-rowId属性。

jquery的:

$(document).ready(function() {
$(".my-select").change(function() {
        btnObj = $(this);
        rowId = $(this).attr("data-rowId");
        changeStatus = $(this).val();
        $.get("changeStatus.php?rowId="+rowId+"&changeStatus="+changeStatus,function(data,status){

            if(data == 'success'){                  
                alert("Status updated successfully to "+str+".");

            }
            else{
                alert("some error");
            }

    });
});
});

答案 1 :(得分:0)

更新 创建 删除

您可以使用班级名称或ID。如果是,则在下面的代码中执行$("#id1").click(function () {...

Awlad已经完成了使用GET方法,下面是使用POST方法。

        $(function () {
            $(".my-select").click(function () {
            var category = $(this).text();
            //$('label').css('color', selText);
                $.ajax({
                        url: "invite_db.php",
                        type: "POST",
                        data: {"category": category},
                        success: function(data) {
                            $(".articleContent").html(data);

                            //setInterval("messageDisable()", 5000);
                        }
                    });
            });
        });

我根据我的代码使用了参数名称。请你改变它

答案 2 :(得分:0)

这是您的HTML和Javascript代码

<select onchange="getval(this);">
<option value="1">One</option>
<option value="2">Two</option>
</select>


<script type="text/javascript">
function getval(sel) {
   $.ajax({
      type: "POST",
      url: url, // url is page where you want to process this post request
      data: 'val=' + sel.value,
});
}
</script>

在PHP方面

<?php
 // Your database connection code
 $val = $_POST['val'];
 mysql_query("UPDATE 'tablename' SET 'column name' = $val 'Your WHere caluse'")
?>