不使用ajax更新php中的数据库

Posted

技术标签:

【中文标题】不使用ajax更新php中的数据库【英文标题】:not update database in php with ajax 【发布时间】:2014-03-29 00:04:56 【问题描述】:

Index.php

<link href="css/validationEngine.jquery.css" rel="stylesheet" type="text/css" />

<script language="javascript" src="js/jquery-1.8.2.min.js" type="text/javascript"></script>

<script language="JavaScript" src="js/jquery.validationEngine-en.js" type="text/javascript"></script>

<script language="JavaScript" src="js/jquery.validationEngine.js" type="text/javascript"></script>

<script>
        jQuery(document).ready(function()

            jQuery("#formID").validationEngine();

        );
</script>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function() 
 
    $('#photoimg').live('change', function()    
     
        $("#preview").html('');
        $("#preview").html('<img src="loader.gif" />');

        $("#imageform").ajaxForm(
        
        target: '#preview'
        ).submit();
    );
); 
</script>
<style>
.preview  float: left;
    width: 57px;

</style>

<link href="css/style.css" rel="stylesheet" type="text/css" />

<div class="form-container form-main-bg" style="margin-top:40px;">


<form id="imageform" name="imageform" method="post" enctype="multipart/form-data" action="ajax_upload_profile_image.php">
Upload image <input type="file" name="photoimg" id="photoimg" />
</form>

<div id='preview'>
</div>


    <form id="formID" name="formID" method="post" action="edit_profile.php">
        <input type="hidden" name="hid_id" id="hid_id" value="<?php echo $_SESSION['UserId']; ?>" />
            <div class="row">
            <div class="left">About</div>
            <div class="right">
            <textarea id="about" name="about" id="about"><?php echo $u_data[0]->vCode; ?></textarea>
            </div>
<div class="row">
            <div class="left">Location</div>
               <textarea id="location" name="location"><?php echo $u_data[0]->vCode; ?></textarea>            </div>

<div class="row">
            <div class="left">Gender</div>
            Male <input type="radio" name="gender" id="gender" value="male" />
            Female <input type="radio" name="gender" id="gender" value="female" />
            <div class="clear"></div>
            </div>

 <!- Other rows here -->
<div  style="text-align:center; margin-top:20px;">
<input name="submit" id="submit" type="submit" class="submit-btn" value="Update" />
</div>
</form>
</div>

ajax_upload_profile_image.php

<?php
    session_start();
    $session_id= $_SESSION['UserId'];

    require_once('includes/config.inc.php');
    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
    
        $path = "images/profile/";

        $valid_formats = array("jpg", "png", "gif", "bmp","jpeg");

        $name = $_FILES['photoimg']['name'];
        $size = $_FILES['photoimg']['size'];
        if(strlen($name))
        
            list($txt, $ext) = explode(".", $name);
            if(in_array($ext,$valid_formats))
            
                if($size<(1024*1024)) // Image size max 1 MB
                
                    $actual_image_name = time().$session_id.".".$ext;
                    $tmp = $_FILES['photoimg']['tmp_name'];
                    if(move_uploaded_file($tmp, $path.$actual_image_name))
                    
                        $query=("UPDATE users SET image='$actual_image_name' WHERE user_id='$session_id'");
                        $result = mysql_query($query) or die();
                        if($result)
                        
                            echo "success"; 
                        
                        else
                        
                            echo "fail";
                        

                        echo "<img src='images/profile/".$actual_image_name."' class='preview'>";
                    
                    else
                        echo "failed";
                
                else
                    echo "Image file size max 1 MB"; 
            
            else
                echo "Invalid file format.."; 
        
        else
            echo "Please select image..!";
        exit;
    
?>

以下代码不起作用。使用表单操作将数据直接发送到 php 脚本时会更新数据库,但是通过 AJAX 函数将数据发送到 php 脚本时,数据库不会更新,但我会收到成功消息。

【问题讨论】:

【参考方案1】:

.ajaxForm插件中的默认类型是GET

在选项中添加type:"POST" 键。

【讨论】:

【参考方案2】:

尝试将session_start();移动到index.php

【讨论】:

我正在尝试但未修复

以上是关于不使用ajax更新php中的数据库的主要内容,如果未能解决你的问题,请参考以下文章

更新选择列表而不刷新 [PDO/PHP/AJAX]

使用 jQuery Ajax 和 PHP 更新 SQL 数据库

使用 ajax、jquery 和 PHP 从数据库更新图像不起作用

内联可编辑行以使用 ajax php 更新数据库 mysql 中的每个记录

AJAX 使用从 PHP 生成的 HTML 调用的函数更新 MYSQL 数据库

使用 datepicker jquery ajax php 更新 mysql 数据库字段