使用PHP和jQuery获取选定的值

时间:2013-03-17 作者:raaaa

我有一个表单,我正在使用它从前端更新用户配置文件,我有国家选择。

<form method="post" id="adduser" action="<?php the_permalink(); ?>">

    <select id="te" name="usercountry_id">
        <option value="1">Country 1</option>
        <option value="2">Country 2</option>
    </select>

    <p class="form-submit">
    <?php echo $referer; ?>
    <input name="updateuser" type="submit" id="updateuser" class="submit button" value="<?php _e(\'Update\', \'profile\'); ?>" />
    <?php wp_nonce_field( \'update-user\' ) ?>
    <input name="action" type="hidden" id="action" value="update-user" />
    </p><!-- .form-submit -->
</form><!-- #adduser -->
当我尝试更新时

$usercountry= $_POST[\'usercountry_id\'];
update_user_meta($id, \'usercountry_id\', $usercountry);
我的$_POST[\'usercountry_id\'] 为空。我还尝试使用jQuery将变量传递给php,但没有成功:

 jQuery("#te").click(function() {
    var b = jQuery(\'#te :selected\').text();

    var ajaxurl =\'<?php echo get_bloginfo("url"); ?>/wp-admin/admin-ajax.php\';
       jQuery.ajax({
        type: \'POST\',
        url: ajaxurl,
        data: {"variable": b },

    });});
$_POST[\'variable\'] 再次为空。

2 个回复
最合适的回答,由SO网友:raaaa 整理而成

好的,我找到了问题所在。我在表单本身中调用了$\\u POST,而不是在表单处理代码中调用。我对用户配置文件使用默认WordPress表单处理代码。

if ( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] && !empty( $_POST[\'action\'] ) && $_POST[\'action\'] == \'update-user\' ) { 
    if ( !empty( $_POST[\'usercountry_id\'] ) )
        update_user_meta($current_user -> id, \'usercountry_id\', esc_attr( $_POST[\'usercountry_id\'] ) );
}

SO网友:CBeTJlu4ok

我用这样的东西,试试看

<script type="text/javascript">
 document.getElementById(\'te\').value = "<?php echo $_GET[\'usercountry_id\'];?>";
</script>

结束

相关推荐

通过AJAX从正在加载到FancyBox的帖子中加载JavaScript

我希望这是有意义的。当用户单击文章标题时,我通过fancybox启动一个模式覆盖,并通过ajax提供相关的文章内容。然而,我有一个javascript调用函数,我需要运行该函数,该函数来自于当内容被提取时未运行的帖子。我猜它与$(文档)有关。准备好了(function())有什么想法吗?触发模式覆盖后,如何加载此功能?<script type=\"text/javascript\"> $(document).ready(function(){ $(\"#jquery_jpl