vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Getting URL out of submission code (https://vborg.vbsupport.ru/showthread.php?t=211111)

Mark.B 04-13-2009 06:45 PM

Getting URL out of submission code
 
In another thread there has been some discussion of creating a style chooser dropdown that actually updates the member's profile details.

We have achieved that part of it ok.

It works like the existing style chooser, from a drop down list that then refreshes the page.

That works fine, but I would *also* like to get a URL equivalent to the dropdown that achieves the same thing. This will be for use in the postbit where I have an entry showing people's style as a clickable link.

The submit code being used in the php file is this:
Code:

if ($_POST['do'] == 'updateoptions')
{
    if ($show['member']){

        $vbulletin->input->clean_array_gpc('p', array('newstyleset'    => TYPE_INT));

        $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
        $userdata->set_existing($vbulletin->userinfo);

        // style set
        if ($vbulletin->options['allowchangestyles'] AND $vbulletin->userinfo['realstyleid'] != $vbulletin->GPC['newstyleset'])
        {
            $userdata->set('styleid', $vbulletin->GPC['newstyleset']);
        }

        ($hook = vBulletinHook::fetch_hook('profile_updateoptions')) ? eval($hook) : false;
        $userdata->save();
    }
    else {
        exec_header_redirect("../index.php?");
    }
}

And the HTML in the template is this:
Code:

<input type="hidden" name="s" value="" />
    <input type="hidden" name="do" value="updateoptions" />
    <input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
    <select class="forumselector" name="newstyleset" id="sel_newstyleset"  onchange="this.form.submit()";>
                                  <optgroup label="$vbphrase[quick_style_chooser]">
                                        $quickchooserbits
                                </optgroup>   
    </select>

Could someone let me know if it's possible to submit this form via a clickable URL? Or failing that, a submit button would do.... And if so what the syntax is?

Lynne 04-13-2009 07:09 PM

I don't believe you will be able to use the form in the postbit - or at least not for moderators or admins. You can't have a form within a form and for mods and admins, all the posts are located within a form for use in the Moderation dropdown at the bottom of the page. I suppose you could put a condition and if it's a mod/admin, you can have a link to go to another page which has the form.

Mark.B 04-13-2009 07:25 PM

Ah, I never thought of that. Thanks Lynne.

Do you know the URL format anyway? As I could also use it on THIS page which lists all my styles in thumbnail form. A link or button below each one is what I'd like.

No forms on this page, it's just generated with static html.

Lynne 04-13-2009 07:33 PM

I'm not sure I completely understand what you want. You just want to get the current page url so you can add the styleid=x to the end of it to get the style to change? Google gives me this - PHP: How to Get the Current Page URL

Mark.B 04-13-2009 08:04 PM

Well, I sort of want a URL (or a button) that people could click to submit the form.
For this one I was thinking along the lines of a URL like:
Code:

  myprofile.php?do=updateoptions&newstyleset=114
However that doesn't work!

Failing that, I've been trying to convert the dropdown in the submission form into a button, but no joy there either!

Lynne 04-13-2009 09:08 PM

Well, you realize that doing it via a link is a GET, not a POST, right?

Mark.B 04-13-2009 09:13 PM

To be honest, no...I'm a bit out of what I'm comfortable with here.

I'm quite willing to accept it's not actually possible to this.

Alternatively I could modify the "myprofile" file that's used here and call it myprofile2 or something.

But a button would do just as well as a link...that would still be a POST presumably? But I'm struggling to make that work. It seems to load the page and redirect ok, but doesn't actually change the style.

Lynne 04-13-2009 09:18 PM

If you have a form, and you set the do parameter in the form (<input type="hidden" name="do" value="updateoptions" /> ), then using "if ($_POST['do'] == 'updateoptions')" would be appropriate. However, if you are sending the do variable ONLY via the url - myprofile.php?do=updateoptions&newstyleset=114 - then $_POST['do'] is not valid, you must change that line to use $_GET['do']. If using a button, as per the template you posted, then the condition using $_POST['do'] is valid.

Mark.B 04-13-2009 10:09 PM

Thanks Lynne, that's sorted it, I have managed to do it using buttons.


All times are GMT. The time now is 12:53 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01984 seconds
  • Memory Usage 1,730KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (9)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete