As Ginerhm said:
href=\"#message_content_".$userinfo->userid."\"
What are you EXPECTING them to do? You put a # in there, it's not going to reload the page. What's the PHP that's supposed to recieve those requests look like? did you mean to do that as GETdata thus?
href=\"?message_content_".$userinfo->userid."\"
Setting that aside, mein gott that markup is terrifying... endless pointless DIV, classes, and nothing remotely resembling semantic markup... much less all that presentation inlined in the HTML that makes it harder to work with.
Here's a tip, if you have a bunch of elements getting the same class in a row inside a parent, leverage selectors to nab them instead of wasting markup on it... likewise if you're using the STYLE attribute in all but the rarest of cases, you're making life harder in the long run.
Likewise use echo instead of print since you don't need/aren't using the return result, and stop using the slower double quotes, you'll use less escapes if you use singles for PHP. I'd also say stop using string addition as it's slower and less predictable than comma delimits on output. See this little gem:
function a() { echo 'test'; }
echo ' This is a ' . a() . '<br />'; // outputs 'test This is a '
echo ' This is a ', a(), '<br />'; // outputs ' This is a test'
It's a fun head scratcher.
In any case, this is (guessing slightly) what you should probably have for code on that:
echo '
<div class="eventSection">
<h2>', $displayit, '</h2>
<p class="whatHappened">
', $whathappened, ' ', $budsince, '
</p>
<ul>
<li><a href="#message_content_', $userinfo->userid, '">Message</a></li>
<li><a href="#wink_content_', $userinfo->userid, '">Wink</a></li>
<li><a href="#save_content_', $userinfo->userid, '>Save Profile</a></li>
<li><a href="#dunno_content_', $userinfo->userid, '>".$optionfour."</a></li>
</ul>
<div class="hiddenSections">
<div id="message_content_', $userinfo->userid, '">
<p>
I wanna put a form here to message ', $userinfo->username, '
</p>
<a class="ajax" href="ajax.html">Click here to load new content</a>
</div>
<div id='wink_content_', $userinfo->userid, '">
<p>
I wanna make this to pick a WINK to give to', $userinfo->username, '
</p>
<a class="ajax" href="ajax.html">Click here to load new content</a>
</div>
<div id='save_content_', $userinfo->userid, '">
<p>
This will pop-up to show you saved ', $userinfo->username, '\'s profile
</p>
<a class="ajax" href="ajax.html">Click here to load new content</a>
</div>
<div id='dunno_content_', $userinfo->userid, '">
<p>
Not sure what will go here but its with ', $userinfo->username, '
</p>
<a class="ajax" href="ajax.html">Click here to load new content</a>
</div>
<!-- .hiddenSections --></div>
<!-- .eventSection --></div>';
The heading level would have to be adjusted to suit the page -- but notice how much easier it is to work with and read without all the pointless screen-only style in the markup and using single quotes instead of doubles and comma delimits instead of string addition? EVERYTHING else goes in your stylesheet where it belongs. EVEN IN TESTING having all that extra style (THAT HAS NO BUSINESS IN THE HTML IN THE FIRST PLACE) in the way just makes life harder -- I don't get why so many developers seem to think otherwise.
Though in rewriting it, I THINK I'm understanding what you're trying to do -- but you're overriding the outer 'hidden' how exactly? It LOOKS like this might be a job for ':target' on modern browsers but I'd have to see what you are actually trying to accomplish to say more.
I just don't think we're seeing enough of your end goal.