PDA

View Full Version : I don't understand it... Please take a look.


netphreak
08-04-2001, 04:24 PM
If anyone can help me out, I'll be very thankful....

I try to make a drop-down box with all the names and e-mail addresses of the users of my board. One way of doing this, is by "hardcode" some new lines in member.php. Here's an example:

// ######################## my new lines of code.... ########################

if ($action=="justatest") {
include("./global.php");

$query = "SELECT * FROM user ORDER BY username, email";
$result = mysql_query($query);

// Determine the number of users

$number = mysql_numrows($result);

// Create drop-down menu of all users

print "<table cellpadding=20 bgcolor=\"lightgrey\">
<tr>
<td>
<form action=\"displayresults.php\" method=\"post\">
<select name=\"userid\">
<option value=\"\">Select a user</option>";
for($i=0; $i<$number; $i++) {
$userid = mysql_result($result,$i,"userid");
$username = mysql_result($result,$i,"username");
$email = mysql_result($result,$i, "email");

print "<option value=\"$userid\">$username - $email</option>";

}

print "</select><input type=\"submit\" value=\"submit\" name=\"submit\">
</form>
</td>
</tr>
</table>";

}

Well, unless I didn't do any typos, this will work as intended. But from here the problem starts. Instead of the print command, I want to call a new template for the output. This makes everything much easier to customize. All the standard templates is called like this in member.php:

eval("dooutput(\"".gettemplate("newtemplate")."\");");

I have successfully done this with several other new options for my users, but for some reason I am not able to get the correct result if I use while loops or ++ :( In the drop-down box example above, I only get the last user in the alphabet, which is the last record. How come??? I suspect another php file used to generate the templates interfering. Any ways around?

Please - if anyone have a clue, share your thoughts - even if it's just a wild guess... I've been struggling with this for sooooo long now.

Thank you :)

netphreak
08-09-2001, 04:43 AM
Please, just post a wild guess if you're unsure. Or let me know if I explained it too bad.

Thank you.

-net

Admin
08-09-2001, 05:09 AM
You will need another template, in this case named newtemplatebit, that will be used inside the loop.
In that template put
<option value="$user[userid]">$user[username] - $bbuserinfo[email]</option>

At the end you call the main template, newtemplate. In that template you put
<table cellpadding=20 bgcolor="lightgrey">
<tr>
<td>
<form action="displayresults.php" method="post">
<select name="userid">
<option value="">Select a user</option>
$newtemplatebit
</select><input type="submit" value="submit" name="submit">
</form>
</td>
</tr>
</table>

Hope I helped. :)

netphreak
08-10-2001, 06:06 PM
Aha! While using 2 templates, it works like a breeze.... But your example of newtemplatebit is not working, it must be $userid, $username and $email (as that's what I used in member.php. And it took me some time to find a way to call the template correct - a "dooutput" is not working.... I still have some problems to solve, but I guess I can figure it out on my own.

Thanks a million for your time :):):)

Admin
08-11-2001, 04:42 AM
dooutput is only done with the main template (newtemplate in this case). For the newtemplatebit it's a simple eval(), no dooutput. :)