Using Forms

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
hpmasterp
Forum Newbie
Posts: 3
Joined: Fri Sep 09, 2005 10:43 pm

Using Forms

Post by hpmasterp »

First I have to say I don't have much experience with php at all... I picked up a book from the library the other day and only got to read a couple chapters before I returned it today.

Okay I guess I should give a little background with this. I'm trying to make a webpage so I could practice for a chem. test. I have an array setup with compounds and their corresponding formulas. I want a form at the bottom where I type in the chemical formula and it matches it with the correct one.

This is the code that I've come up with...but as you can see it's not working. Right now I think the problem is in my "hidden" inputs.

Here is my site right now with my code that doesn't work. http://whhs.info/tim/ions.php

Here is the code for the first page:

Code: Select all

<html>
<head>
<title>Common Cations, Anions and Substances</title>
</head>
<body>
<h1>Common Cations, Anions and Substances</h1>



<?php

$cheese = rand(0, 100);
$choose = $cheese;


$ions = array(array("Ammonium Ion", "NH<sup>4+</sup>", "NH4+"),
array("Lithium Ion", "Li<sup>+</sup>", "Li+"),
array("Sodium Ion", "Na<sup>+</sup>", "Na+"),
array("Potassium Ion", "K<sup>+</sup>", "K+"),
array("Magnesium Ion", "Mg<sup>2+</sup>", "Mg2+"),
array("Barium Ion", "Ba<sup>2+</sup>", "Ba2+"),
array("Calcium Ion", "Ca<sup>2+</sup>", "Ca2+"),
array("Strontium Ion", "Sr<sup>2+</sup>", "Sr2+"),
array("Lead(II) Ion (plumbous ion)", "Pb<sup>2+</sup>", "Pb2+"),
array("Lead(IV) Ion (plumbic ion)", "Pb<sup>4+</sup>", "Pb4+"),
array("Tin(II) Ion (stannous ion)", "Sn<sup>2+</sup>", "Sn2+"),
array("Tin(IV) Ion (stannic ion)", "Sn<sup>4+</sup>", "Sn4+"),
array("Cobalt(II) Ion (cobaltous ion)", "Co<sup>2+</sup>", "Co2+"),
array("Cobalt(III) Ion (cobaltic ion)", "Li<sup>3+</sup>", "Co3+"),
array("Iron(II) ion (ferrous ion)", "Fe<sup>2+</sup>", "Fe2+"),
array("Iron(III) ion (ferric ion)", "Fe<sup>3+</sup>", "Fe3+"),
array("Copper(l) ion (cuprous ion)", "Cu<sup>+</sup>", "Cu+"),
array("Copper(II) ion (cupric ion)", "Cu<sup>2+</sup>", "Cu2+"),
array("Mercury(I) ion (mercurous ion)", "Hg<sub>2</sub><sup>2+</sup>", "Hg22+"),
array("Mercury(II) ion (mercuric ion)", "Hg<sup>2+</sup>", "Hg2+"),
array("Antimony(III) ion", "Sb<sup>3+</sup>", "Sb3+"),
array("Antimony(V) ion", "Sb<sup>5+</sup>", "Sb5+"),
array("Chromium(II) ion (chromous ion)", "Cr<sup>2+</sup>", "Cr2+"),
array("Chromium(III) ion (chromic ion)", "Cr<sup>3+</sup>", "Cr3+" ),
array("GoldI ion", "Au<sup>+</sup>", "Au+"),
array("Gold(III) ion", "Au<sup>3+</sup>", "Au3+"),
array("Nickel(II) ion", "Ni<sup>2+</sup>", "Ni2+"),
array("Nickel(III) ion", "Ni<sup>3+</sup>", "Ni3+"),
array("Aluminum(III) ion", "Al<sup>3+</sup>", "AI3+"),
array("Hydrogen ion (proton)", "H<sup>+</sup>", "H+"),
array("Silver(I) ion", "Ag<sup>+</sup>", "Ag+"),
array("Cadmium(II) ion", "Cd<sup>2+</sup>", "Cd2+"),
array("Manganese(II) ion", "Mn<sup>2+</sup>", "Mn2+"),
array("Zinc (II) ion", "Zn<sup>2+</sup>", "Zn2+"),
array("Hypochlorite ion", "CIO<sup>-</sup>", "CIO–"),
array("Chlorite ion", "CIO<sup>2-</sup>", "CIO2–"),
array("Chlorate ion", "CIO<sup>3-</sup>", "CIO3-"),
array("Perchlorate ion", "CIO<sup>4-</sup>", "ClO4–"),
array("Fluoride ion", "F<sup>-</sup>", "F-"),
array("Chloride ion", "Cl<sup>-</sup>", "Cl-"),
array("Bromide ion", "Br<sup>-</sup>", "Br-"),
array("Iodide ion", "I<sup>-</sup>", "I-"),
array("Periodate ion", "IO<sub>4</sub><sup>-</sup>", "I04-"),
array("Nitrite ion", "NO<sub>2</sub><sup>-</sup>", "NO2–"),
array("Nitrate ion", "No<sub>2</sub><sup>-</sup>", "NO3-"),
array("Sulfite ion", "SO<sub>3</sub><sup>2-</sup>", "SO32-"),
array("Sulfate ion", "SO<sub>4</sub><sup>2-</sup>"),
array("Hydrogen sulfate ion", "HSO<sub>4</sub><sup>-</sup>", "HSO4-"),
array("Selenate ion", "SeO<sub>4</sub><sup>2-</sup>", "SeO42-"),
array("Carbonate ion", "Co<sub>3</sub><sup>2-</sup>", "CO32-"),
array("Hydrogen carbonate ion; bicarbonate ion", "HCO<sub>3</sub><sup>-</sup>", "HCO3-"),
array("Phosphate ion", "PO<sub>4</sub><sup>3-</sup>", "PO43-"),
array("hydrogen phosphate ion", "HP0<sub>4</sub><sup>2-</sup>", "HP042-"),
array("Dihydrogen phosphate ion", "H<sub>2</sub>PO<sub>4</sub><sup>-</sup>", "H2PO4-"),
array("Phosphite ion", "PO<sub>3</sub><sup>3-</sup>", "PO33-"),
array("Arsenate ion", "AsO<sub>4</sub><sup>3-</sup>", "AsO43-"),
array("Phosphide ion", "P<sup>3-</sup>", "P3-"),
array("Nitride ion", "N<sup>3-</sup>", "N3-"),
array("Hydroxide ion", "OH<sup>-</sup>", "OH-"),
array("Hydride ion", "H<sup>-</sup>", "H-"),
array("Cyanide ion", "CN<sup>-</sup>", "CN-"),
array("Cyanate ion", "NCO<sup>-</sup>", "NCO-"),
array("Thiocyanate ion", "SCN<sup>-</sup>", "SCN-"),
array("Sulfide ion", "S<sup>2-</sup>", "S2-"),
array("Carbide ion", "C<sup>4-</sup>", "C4-"),
array("Permanganate ion", "MnO<sub>4</sub><sup>-</sup>", "MnO4-"),
array("Chromate ion", "CrO<sub>4</sub><sup>2-</sup>", "CrO42-"),
array("Dichromate ion", "Cr<sub>2</sub>O<sub>7</sub><sup>2-</sup>", "Cr2O72-"),
array("Oxide ion", "O<sup>2-</sup>", "02-"),
array("Peroxide ion", "O<sub>2</sub><sup>2-</sup>", "O22-"),
array("Superoxide ion", "O<sub>2</sub><sup>-</sup>", "O2-"),
array("Ferrocyanide ion", "Fe(CN)<sub>6</sub><sup>4-</sup>", "Fe(CN)63-"),
array("Ferricyanide ion", "Fe(CN)<sub>6</sub><sup>3-</sup>", "Fe(CN)63–"),
array("Acetate ion", "C<sub>2</sub>H<sub>3</sub>O<sub>2</sub><sup>-</sup>", "C2H3O2-"),
array("Thiosulfate ion", "S<sub>2</sub>O<sub>3</sub><sup>2-</sup>", "S2O32-"),
array("Persulfate ion", "S<sub>2</sub>O<sub>8</sub><sup>2-</sup>", "S2O82-"),
array("Nitrous Acid", "HNO<sub>2</sub>", "HNO2"),
array("Nitric Acid", "HNO<sub>3</sub>", "HNO3"),
array("Sulfurous Acid", "H<sub>2</sub>SO<sub>3</sub>", "H2SO3"),
array("Sulfuric Acid", "H<sub>2</sub>SO<sub>4</sub>", "H2SO4"),
array("Phosphorous Acid", "H<sub>3</sub>PO<sub>3</sub>", "H3PO3"),
array("Phosphoric Acid", "H<sub>3</sub>PO<sub>4</sub>", "H3PO4"),
array("Perchloric Acid", "HCIO<sub>4</sub>", "HCIO4"),
array("Acetic Acid", "HC<sub>2</sub>H<sub>3</sub>O<sub>2</sub>", "HC2H3O2"),
array("Formic Acid", "HCHO<sub>2</sub>", "HCHO2"),
array("Dinitrogen oxide (nitrous oxide)", "N<sub>2</sub>O", "N2O"),
array("Nitrogen oxide (nitric oxide)", "No", "NO"),
array("Nitrogen Dioxide", "NO<sub>2</sub>", "NO2"),
array("Dinitrogen Tetroxide", "N<sub>2</sub>0<sub>4</sub>", "N2O4"),
array("Carbon Monoxide", "CO", "CO"),
array("Carbon Dioxide", "CO<sub>2</sub>", "CO2"),
array("Ozone", "o<sub>3</sub>", "o3"),
array("Ammonia", "NH<sub>3</sub>", "NH3"),
array("Methane", "CH<sub>4</sub>", "CH4"),
array("Ethane", "C<sub>2</sub>H<sub>6</sub>", "C2H6"),
array("Propane", "C<sub>3</sub>H<sub>8</sub>", "C3H8"),
array("Butane", "C<sub>4</sub>H<sub>10</sub>", "C4H10"),
array("Pentane ion", "C<sub>5</sub>H<sub>12</sub>", "C5H12"),
array("Hexane", "C<sub>6</sub>H<sub>14</sub>", "C6H14"),
array("Heptane", "C<sub>7</sub>H<sub>16</sub>", "C7H16"),
array("Octane", "C<sub>8</sub>H<sub>18</sub>", "C8H18")
);

print '<div align="center"><h1>';
print $ions[$choose][0];
print "</div></h1>


";
?>









<form action="next.php" method="post">
<input type="hidden" name="cname" value="<?php echo "$ions[$choose][0]"; ?>">
<input type="hidden" name="correctformat" value="<?php echo "$ions[$choose][1]"; ?>">
<input type="hidden" name="correctthingy" value="<?php echo "$ions[$choose][2]"; ?>">

Answer: <input name="answer" type="text" />
<input type="submit" />
</form>


</body>
</html>

This is the corresponding page (next.php):

Code: Select all

<?php
$yousaid = $_POST['answer'];
$correct = $_POST['correctthingy'];
$correctf = $_POST['correctformat'];
$cname = $_POST['cname'];


//This will be used later if I get variables to work.
//if ( $yousaid == $correct)
//{
//echo "You nailed that one! Good Job!";
//}else{
// print "Ahh poo.... remember" . "$cname" . "$correctf";
//}

echo "you said" . $yousaid;
echo "<br />correct" . $corect;
echo "<br />correctf" . $correctf;
print "<br />cname" . $cname;


?>
Any help would be appriciated. Thanks.
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

Code: Select all

<form action="next.php" method="post">
<input type="hidden" name="cname" value="<?php echo $ions[$choose][0]; ?>">
<input type="hidden" name="correctformat" value="<?php echo $ions[$choose][1]; ?>">
<input type="hidden" name="correctthingy" value="<?php echo $ions[$choose][2]; ?>">

Answer: <input name="answer" type="text" />
<input type="submit" />
</form>
when inside a double quote string, only the first array level is processed. Your strings where turned into 'Array[0]' .. alternately, you could have used the following (which is marginally slower to process)

Code: Select all

<form action="next.php" method="post">
<input type="hidden" name="cname" value="<?php echo "{$ions[$choose][0]}"; ?>">
<input type="hidden" name="correctformat" value="<?php echo "{$ions[$choose][1]}"; ?>">
<input type="hidden" name="correctthingy" value="<?php echo "{$ions[$choose][2]}"; ?>">

Answer: <input name="answer" type="text" />
<input type="submit" />
</form>
hpmasterp
Forum Newbie
Posts: 3
Joined: Fri Sep 09, 2005 10:43 pm

Post by hpmasterp »

Works! Thank you!

I posted this same question on the G4tv Call For Help Forums and still haven't gotten a reply.

I can't wait till I learn some more so I can be an active member.
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

you're welcome, and welcome to the forum. :) We're glad you found us, and we hope to stick around. :)
Post Reply