Jump to content

Form help: Syntax & Logic


MainStWebGuy

Recommended Posts

Hello again all,

 

I'm working on a form and ran into a wall (again) and can't seem to think through how to best code what i need (the logic side). I've begun by just sitting down and starting to code with the little knowledge i have of php but can't seem to get it right and am not sure i'm using the correct syntax...

 

The form is your basic contact form that collects contact information, but it also has a place for customers to input product information such as a quantity and dimensions (width and height). The form offers the visitor a chance to enter up to 7 different "products" and their quantity, width, and height.... here's that part of the form...

 

<form name="myForm" action="<?php echo $_SERVER['PHP_SELF ']; ?>" method="POST">
  <table width="600" cellspacing="2" cellpadding="1">
    <tr>
      <td>Quantity</td>
      <td>Width</td>
      <td>height</td>
    </tr>
    <tr>
      <td><input type="text" name="qty1" /></td>
      <td><input type="text" name="width1" /></td>
      <td><input type="text" name="height1" /></td>
    </tr>

    <tr>
      <td><input type="text" name="qty2" /></td>
      <td><input type="text" name="width2" /></td>
      <td><input type="text" name="height2" /></td>
    </tr>
    <tr>
      <td><input type="text" name="qty3" /></td>
      <td><input type="text" name="width3" /></td>
      <td><input type="text" name="height3" /></td>
    </tr>
    <tr>
      <td><input type="text" name="qty4" /></td>
      <td><input type="text" name="width4" /></td>
      <td><input type="text" name="height4" /></td>
    </tr>
    <tr>
      <td><input type="text" name="qty5" /></td>
      <td><input type="text" name="width5" /></td>
      <td><input type="text" name="height5" /></td>
    </tr>
    <tr>
      <td><input type="text" name="qty6" /></td>
      <td><input type="text" name="width6" /></td>
      <td><input type="text" name="height6" /></td>
    </tr>
    <tr>
      <td><input type="text" name="qty7" /></td>
      <td><input type="text" name="width7" /></td>
      <td><input type="text" name="height7" /></td>
    </tr>
</table>
</form>

 

... pretty simple stuff there...

I am having trouble though collecting the info from the form... the newbie in me (to php and programming in general) had me begin hard coding each variable like this...

 

$qty1 = $_POST['qty1'];
$qty2 = $_POST['qty2'];
   ....
$width1 = $_POST['qty1'];
$width2 = $_POST['qty2'];
    ....
$height1 = $_POST['qty1'];
$height2 = $_POST['qty2'];
      ....

 

I thought that it might make more sense (and help me learn a little) to try and use a loop to create these variables.... is this good practice?

 

Here's what i came up with...

for ($X=1;$X < sizeof($glass1)-1; $X++) {
// how's the syntax on the next line???			
if($_POST['Qty'.$X]!=NULL ){
			$glasspart1.="Part  $X\n";
                                //below: can i use $qty$X like that?
			$glass1 = array("QTY: $qty$X", "DIMENSIONS: $width$X X $height$X");
			$glasspart1.= "$glass1[$X-1]\n";
		}

	}

 

am i on the right track so far?

 

I still am having trouble validating the form (the logic) in order to only create arrays for the parts (1-7) that were filled in, but i can save that for another post :-)

 

thanks again all for any help or advice!!

J

 

Link to comment
Share on other sites

Thanks for a point in the right direction, but i'm still having some issues. The form is processing the info to itself, but when i try to echo out the parts(and properties) that have been inputted, they are coming up blank....

 

I've attached the code i'm working with with your suggestions added as well as some other little things i've tried to see if they would help get it working.

 

I LOVE input, the good the bad and the ugly, so feel free to call it out when you see something that's stupid, newb-ish, etc! :-)

 

thanks again,

J

 

[attachment deleted by admin]

Link to comment
Share on other sites

Redesign your form so that it uses arrays:

    <tr>
      <td><input type="text" name="qty[]" /></td>
      <td><input type="text" name="width[]" /></td>
      <td><input type="text" name="height[]" /></td>
    </tr>

Then you can use arrays more easily in your back-end code

 

$qty[1] = $_POST['qty'][1];

Link to comment
Share on other sites

That makes a lot of sense (to me i think) and seems to simplify the code a bit. Thanks!

 

However, I'm still having the same issue... the form process, but outputs nothing.

 

The new attachment contains the updated code...

 

Is this what you were talking about?

 

[attachment deleted by admin]

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.