首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我不改变我的照片,它被删除了

当我不改变我的照片,它被删除了
EN

Stack Overflow用户
提问于 2016-12-28 06:01:05
回答 1查看 31关注 0票数 0

我是个新开发人员。我已经为数据插入WP仪表板创建了一个插件。我试图在WordPress中使用Ajax来形成提交。当我更改图片时,它成功地更新了,但是当我不更改图片时,它被删除。为什么?这是我的密码。

表格:

代码语言:javascript
复制
<form id="ajax_form_update"  method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>" enctype="multipart/form-data">
    <table class='wp-list-table widefat fixed'>
        <tr><th></th><td><input type="hidden" name="id" value="<?php echo $id; ?>"/></td></tr>
        <tr><th>Name</th><td><input type="text" name="name" value="<?php echo $name; ?>"/></td></tr>
        <tr><th>Code</th><td><input type="text" name="code" value="<?php echo $code; ?>"/></td></tr>
        <tr><th>Image</th><td ><img id="blah" src="data:image/jpeg;base64, <?php echo  $photo;?> " width="100" height="100" /> </td></tr>
        <tr><th></th><td><input  type="file" onchange="readURL(this);" name="photo"   class="ss-field-width" /></td></tr>
    </table>
    <input type='submit' name="submit" value='Save' class='button'> &nbsp;&nbsp;
</form>

PHP:

代码语言:javascript
复制
<?php
function ajaxupdate() {
    global $wpdb;
    $id = $_POST["id"];
    $code = $_POST["code"];
    $name = $_POST["name"];
    $imagesss = ($_FILES["photo"]["tmp_name"]);
    $bin_string = file_get_contents("$imagesss");
    $aencode1 = base64_encode($bin_string);
    $table_name = $wpdb->prefix . "school";
    //update
    $result = $wpdb->update(
                $table_name, //table
                array('code' => $code, 'name' => $name,'image_name'=>$aencode1 ), //data
                    array('id' => $id) //where
                );
}
add_action( 'wp_ajax_ajaxupdate', 'ajaxupdate' );
add_action('wp_ajax_nopriv_ajaxupdate', 'ajaxupdate');

AJAX

代码语言:javascript
复制
jQuery("#ajax_form_update").submit(function(event){
    event.preventDefault(); //prevent default action
    var post_url = jQuery(this).attr("action"); //get form action url
    var request_method = jQuery(this).attr("method"); //get form GET/POST method
    var form_data = new FormData(this); //Creates new FormData object
    jQuery.ajax({
        url: "/mywp/wp-admin/admin-ajax.php?action=ajaxupdate",  
        type: request_method,
        data : form_data,
        contentType: false,
        cache: false,
        processData:false,
        success:function(data){  
            alert ('Data Updated');
            //location.reload();
         },
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-28 06:19:51

这是你的代码:

代码语言:javascript
复制
if(!empty(imagesss)){
    //update
            $result = $wpdb->update(
                        $table_name, //table
                        array('code' => $code, 'name' => $name,'image_name'=>$aencode1 ), //data
                        array('id' => $id) //where

                );
    } else {
    //update
            $result = $wpdb->update(
                        $table_name, //table
                        array('code' => $code, 'name' => $name), //data
                        array('id' => $id) //where

                );
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41356226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档