0
私は新しい開発者です。私は、WPダッシュボードにデータを挿入するためのプラグインを作成しました。私はWordPressでAjaxを使って提出するようにしています。私は写真を変更すると正常に更新されましたが、私は写真を変更していないときは削除しました。どうして?私のコードがあります。削除した写真を変更しないとき
形式:
<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'>
</form>
PHP:
<?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これはあなたのコードである
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();
},
});
});
写真を変更しないと、対応するイメージのdb列に空白の値が表示されますか? – Rahul
はい、私はそれを見ました、解決策は何ですか? –
あなたのフォームが提出されるたびに、イメージが変更されたときにイメージ名を取得していますが、空でない値が取得されていないときにdb内で更新されます。イメージを保存する前に、空であるかどうかをチェックします。空であれば、dbのイメージカラムを更新しません。 – Rahul