Re: radio form submission

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Jun 23, 2011, at 2:32 PM, Karl DeSaulniers wrote:

Try this...

function getSpeed($val) {
	if($val != 'undefined') {
		switch ($val){
			case "1":
				$post_tptest = "0-250kbps";
				break;
			case "2":
				$post_tptest = "250-300kbps";
				break;
			case "3":
				$post_tptest = "300-400kbps";
				break;
			case "4":
				$post_tptest = "400-600kbps";
				break;
			case "5":
				$post_tptest = "600kbps-3.8mbps";
				break;
			default:
				$post_tptest = "Speed Undetected"; // or "0-250kbps"
				break;
			}
		} else {
			return("Error, no speed value set");

Just to point out, this is the only return from this function. The $post_tptest is never returned. You could actually just say:
			
			return "0-250kbps";

above instead of setting the $post_tptest *local* variable. (You wouldn't need the break statements, then, either, but it's still probably a good idea to code them in.)

		}
	}
}
$post_speed = getSpeed($post_tptest);


Or, you know, an array:

speed = array(
	'1'=>'0-250kbps',
	'2'=>'250-300kbps'.
	'3'=>'300-400kbps',
	'4'=>'400-600kbps',
	'5'=>'600kbps-3.8mbps',
	);

//$post_speed = isset($speed[$post_tptest])? $speed[$post_tptest]:"Speed undetected";

(See below for inline usage.)

Of course, you could also avoid all this translation by putting the string values you want in the radio button on the form itself. This may have implications for your database and how you store it, however.

You can also avoid the problem with an empty return if no radio button is checked by making sure one is checked when your form loads, by using the 'checked' attribute on one of the items. If you want them to have a "not tested" option, you can include that as one of your buttons and add it to the array above as well. (That might be a good place to use the zero value.)



$posts_sql = "SELECT
						posts.post_store,
						posts.post_content,
						posts.post_speed,
						posts.post_date,
						posts.post_by,
						users.user_id,
						users.user_name,
						users.first_name,
						users.last_name
					FROM
						posts
					LEFT JOIN
						users
					ON
						posts.post_by = users.user_id
					WHERE
						posts.post_store = " . mysql_real_escape_string($_GET['id']) . "
					ORDER BY
						posts.post_date DESC ";	

...

Best,
Karl


On Jun 23, 2011, at 1:18 PM, Chris Stinemetz wrote:

So far I am good on creating the form and  submitting it to mysql
database and calling the submitting value from a different script.

My question is: How can I make it so when a user selects radio option
value "1" it will then be displayed as 0-250kbps when I call it the
value in the bottom script?

forgive my indention. Gmail messes it up.


#### My Form ####


				echo '<form method="post" action="">
Store name: <input type="text" name="store_subject" /><br / ><br />
					Market:';
				
				echo '<select name="store_mar">';
					while($row = mysql_fetch_assoc($result))
					{
						echo '<option value="' . $row['mar_id'] . '">' .
$row['mar_name'] . '</option>';
					}
				echo '</select><br /><br />';	
					
				echo 'Broadband speed test results: <br /><br />
					0-250kbps<input type="radio" name="post_tptest" value="1" />|
					250-300kbps<input type="radio" name="post_tptest" value="2" />|
					300-400kbps<input type="radio" name="post_tptest" value="3" />|
					400-600kbps<input type="radio" name="post_tptest" value="4" />|
					600kbps-3.8mbps<input type="radio" name="post_tptest" value="5"
/><br /><br />
					Store visit details: <br /><br />
					<textarea name="post_content" /></textarea><br /><br />
					<input type="submit" value="Add a store visit" />
				 </form>';

#### My display script ####

			$posts_sql = "SELECT
						posts.post_store,
						posts.post_content,
						posts.post_tptest,
						posts.post_date,
						posts.post_by,
						users.user_id,
						users.user_name,
						users.first_name,
						users.last_name
					FROM
						posts
					LEFT JOIN
						users
					ON
						posts.post_by = users.user_id
					WHERE
posts.post_store = " . mysql_real_escape_string($_GET['id']) . "
					ORDER BY
						posts.post_date DESC ";	
														
			$posts_result = mysql_query($posts_sql);
			
			if(!$posts_result)
			{
				echo '<tr><td>The posts could not be displayed, please try again
later.</tr></td></table>';
			}
			else
			{
			
				while($posts_row = mysql_fetch_assoc($posts_result))
				{
					echo '<tr class="topic-post">
							<td class="user-post">' . $posts_row['first_name'] . ' ' .
$posts_row['last_name'] . '<br/>' . date('m-d-Y h:iA',
strtotime($posts_row['post_date'])) . '</td>
							<td class="post-content">' . $posts_row['post_tptest'] .

Here is where you'd use the speed array we defined above:

<td class="post-content">' . (isset($speed[($posts_row['post_tptest'])])?
							$speed[($posts_row['post_tptest'])]:"Speed undetected") .

'<br/>' . htmlentities(stripslashes($posts_row['post_content'])) .
'</td>
						  </tr>';
				}
			}

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Karl DeSaulniers
Design Drumm
http://designdrumm.com



--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux