使用onClick更新数据库(NewB)

时间:2014-07-15 08:25:48

标签: javascript php jquery mysql ajax

感谢强大的约翰帮助。但我不能让我的数据库更新。如果你有时间,请查看我的两个文件并告诉我F是错的  我的hire_staff.php

<?php
session_start();
include("header.php");
?>
<?php
$chief_aerodynamicist = $staff['chief_aerodynamicist'];
$chief_designer = $staff['chief_designer'];
$commercial_director = $staff['commercial_director'];
$pit_crew = $staff['pit_crew'];
$technical_director = $staff['technical_director'];




?>
<head>
<script>
function bye(){
    alert('bye');
}
$(document).ready(function(){
    function hire(){
        $.ajax({
            url: "update.php",
            type: "POST",
            data: {uid: 12341234}, //this sends the user-id to php as a post variable, in php it can be accessed as $_POST['uid']
            success: function(data){
                data = JSON.parse(data);
                //update some fields with the updated data
                //you can access the data like 'data["driver"]'
            }
        });
    }
});
</script>
</head>

<center><h2>You can hire new staff here</h2></center>

<table cellpadding="3" cellspacing="5">
        <tr>
            <td>Chief Aerodynamicist:</td>
            <td><i><?php echo "Level $chief_aerodynamicist"; ?></i></td>
            <td><form><input type="button" value="Hire!" onClick="hire();"</form></td>
        </tr>
          <tr>   
            <td>Chief Designer:</td>
            <td><i><?php echo "Level $chief_designer"; ?></i></td>
        </tr>
          <tr>               
            <td>Commercial Director:</td>
            <td><i><?php echo "Level $commercial_director"; ?></i></td>
        </tr>
          <tr>  
            <td>Pit Crew:</td>
            <td><i><?php echo "Level $pit_crew"; ?></i></td>
        </tr>
        <tr>  
            <td>Technical Director:</td>
            <td><i><?php echo "Level $technical_director"; ?></i></td>
        </tr>


</table>



<?php
include("footer.php");
?>

我的test1.php文件

<?php
include("functions.php");
connect();
if(isset($_POST['uid'])){
     connect();
    mysql_query("UPDATE  `staff` SET  `driver` =  '3' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error());
$query = mysql_query("SELECT FROM `staff` WHERE `id`='".$_POST['uid']."'")or die(mysql_error());
    $results = mysql_fetch_assoc($query);
    echo json_encode($results);

}

?>

它实际上是我要更新的工作人员,但驱动程序也在同一个表中

1 个答案:

答案 0 :(得分:0)

使用jQueryAjax

$(document).ready(function(){
    $("#button").click(function(){
        $.ajax({
            url: "update.php",
            type: "POST",
            data: {uid: 12341234}, //this sends the user-id to php as a post variable, in php it can be accessed as $_POST['uid']
            success: function(data){
                data = JSON.parse(data);
                //update some fields with the updated data
                //you can access the data like 'data["driver"]'
            }
        });
    });
});

//the button
<input type="button" id="button" value="Hire!"/>

//update.php
if(isset($_POST['uid'])){
    //connect to the db etc...
    mysql_query("UPDATE  `staff` SET  `driver` =  '3' WHERE `id`='".$_POST['uid']."'") or die(mysql_error());

    //this'll send the new statistics to the jquery code
    $query = mysql_query("SELECT FROM `staff` WHERE `id`='".$_POST['uid']."'")or die(mysql_error());
    $results = mysql_fetch_assoc($query);
    echo json_encode($results);
}

在ajax调用的success函数中使用“更新某些字段”,我的意思是您可以更新您刚刚在数据库中更改的页面上的统计信息,以便网页上的统计信息自动更改在数据库和页面本身

修改
把它放在标题中:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
    function bye(){
        alert('bye');
    }
    $(document).ready(function(){
        $("#button").click(function(){
            $.ajax({
                url: "test1.php",
                type: "POST",
                data: {uid: 12341234}, //this sends the user-id to php as a post variable, in php it can be accessed as $_POST['uid']
                success: function(data){
                    data = JSON.parse(data);
                    //update some fields with the updated data
                    //you can access the data like 'data["driver"]'
                }
            });
        });
    });
</script>

然后按下按钮“id”按钮:

<form><input type="button" id="button" value="Hire!"/></form>

确保ajax请求(url: "test1.php",)的url参数指向正确的php页面。

我希望这有帮助!

修改
如果要选择驱动程序,这是代码:

<form><input type="button" class="button" id="3" value="Hire!"/></form> //the id is different for every guy

javascript代码:

$(document).ready(function(){
    $(".button").click(function(e){
        $.ajax({
            url: "test1.php",
            type: "POST",
            data: {colID: e.target.id}, //this sends the user-id to php as a post variable, in php it can be accessed as $_POST['uid']
            success: function(data){
                data = JSON.parse(data);
                //update some fields with the updated data
                //you can access the data like 'data["driver"]'
            }
        });
    });
});

如您所见,我将#更改为.,我将参数e添加到回调函数中,并将colID添加到数据对象。
这将是新的PHP代码:

if(isset($_POST['colID'])){
    //connect to the db etc...

    $colID = mysql_real_escape($_POST['colID']); //for security
    $userID = mysql_real_escape($_SESSION['uid']);
    mysql_query("UPDATE  `staff` SET  `$colID` =  'newValue' WHERE `id`='$userID'") or die(mysql_error());

    //this'll send the new statistics to the jquery code
    $query = mysql_query("SELECT FROM `staff` WHERE `id`='$userID'")or die(mysql_error());
    $results = mysql_fetch_assoc($query);
    echo json_encode($results);
}

我希望这就是你的意思:)。