在Change事件上更改附件自定义字段

时间:2014-09-10 作者:Mindau

表单位于“创建后”窗口中。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>
功能。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>

1 个回复
SO网友:Domain

将函数替换为函数。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\') i、 e。var ajaxurl = \'<?php echo admin_url("admin-ajax.php");?>\'

结束

相关推荐

具有多个类实例的WP_AJAX处理程序

八个月前,我问了几乎相同的问题there. 但到目前为止,这个问题仍然没有得到解决。但我还有一个想法,为什么它会失败。在此期间,我的代码得到了改进。我有多个具有相同结构的类:<?php class McCustomPost { ... } $wpMcCustomPost = new McCustomPost(); ?> ... <?php class McAdmin { ... } $wpMcAdmin = new McAdmin(