Page 1 of 1

Using Forms

Posted: Fri Sep 09, 2005 10:48 pm
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.

Posted: Fri Sep 09, 2005 11:06 pm
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>

Posted: Fri Sep 09, 2005 11:11 pm
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.

Posted: Fri Sep 09, 2005 11:16 pm
by feyd
you're welcome, and welcome to the forum. :) We're glad you found us, and we hope to stick around. :)