Replace the function into your functions.php file –
function update_dynamic_select() {
update_post_meta($_POST['aid'], $_POST['field'], $_POST['value']);
echo $_POST['value'];
die();
}
Replace options in your HTML part –
<?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>
EDIT:
Also, add one more hook –
add_action( 'wp_ajax_nopriv_dynselect', 'update_dynamic_select' );
and make sure that variable ajaxurl
has value admin_url('admin-ajax.php')
i.e. var ajaxurl="<?php echo admin_url("admin-ajax.php");?>"