изменить настраиваемое поле вложения на событиеChange

Форма находится в окне создания почты. Ajax публикует значения, но значения обновляются. Где может быть проблема?

Ajax

<script> function dynamic_Select(field, aid, value) { console.log(field, aid,value); jQuery.ajax({ type: "POST", url: ajaxurl, data:{ field: field, aid: aid, value: value, }, error: function(){alert('Error!')}, success: function(){alert(value)} }); } </script> 

functions.php

 add_action('wp_ajax_dynselect', 'update_dynamic_select'); add_filter("attachment_fields_to_save", " update_dynamic_select", null , 2); function update_dynamic_select($field, $aid, $value) { update_post_meta($aid, $field, $value); } 

HTML:

 <select aid="104" name="_image_matmenys" onchange="dynamic_Select(this.getAttribute('name'), this.getAttribute('aid') ,this.value)"> <option value="10x10">10x10</option> <option value="20x20" selected="selected">20x20</option> <option value="30x30">30x30</option> </select> 

Solutions Collecting From Web of "изменить настраиваемое поле вложения на событиеChange"

Замените функцию в файле functions.php –

 function update_dynamic_select() { update_post_meta($_POST['aid'], $_POST['field'], $_POST['value']); echo $_POST['value']; die(); } 

Замените параметры в своей части HTML –

 <?php $val = get_post_meta( 104, '_image_matmenys', true ); $s1 = ($val == "10x10") ? 'selected="selected"' : ''; $s2 = ($val == "20x20") ? 'selected="selected"' : ''; $s3 = ($val == "30x30") ? 'selected="selected"' : ''; ?> <option value="10x10" <?php echo $s1;?>>10x10</option> <option value="20x20" <?php echo $s2;?>>20x20</option> <option value="30x30" <?php echo $s3;?>>30x30</option> 

РЕДАКТИРОВАТЬ:

Кроме того, добавьте еще один крючок –

 add_action( 'wp_ajax_nopriv_dynselect', 'update_dynamic_select' ); 

и убедитесь, что переменная ajaxurl имеет значение admin_url('admin-ajax.php') то есть var ajaxurl = '<?php echo admin_url("admin-ajax.php");?>'