Link to home
Start Free TrialLog in
Avatar of AXISHK
AXISHK

asked on

Field Alignment in PHP

I have a code using <li> and <ul> for alignment. However, the displayed field can't be aligned properly, Any idea ?
Screen.png
page-furniture-index.inc.txt
SOLUTION
Avatar of Dave Baldwin
Dave Baldwin
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of AXISHK
AXISHK

ASKER

Sorry, I attached a wrong source, should be this one...
page-furniture-products.inc.txt
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
greetings  AXISHK, , I looked over your code in the file -
        page-furniture-products.inc.txt
there you use a HTML <table> to place ROWS of PRODUCTS, You ask -
       "However, the displayed field can't be aligned properly, Any idea ? "

Your <table> does align the columns as the CSS and HTML tells it to. You may need to try and learn about the positioning behavior of HTML <table> in it's <td> elements, so you can change the positions as you need to.
Before anything, you absolutely MUST NOT EVER HAVE anything between the <table> sections like -
   <tr> <td>
except spaces, tabs and line breaks. . . You can NOT place a <form> tag as you do with -
     echo "<form action='$_SERVER[PHP_SELF]' method='POST'>\n"
between the   </tr> and the next table <tr>, if you mix a <form> and a <table> together, as you do in this,  you need to have the <form> OUTSIDE of the <table> as the <table> container maybe like -

       echo "<form action='$_SERVER[PHP_SELF]' method='POST'>\n";
       echo "<input type='hidden' name='n_end' value='$n_end'>\n";
       echo "<input type='hidden' name='interest' value='$_POST[interest]'>";
// now place table inside of form
       echo "<table style='width: 100%'>\n";

In a <table>, any and all other HTML elements, need to be INSIDE of the beginning and end tags for <th> </th> or <td> </td>.

Your CSS uses inches as in -
       <body style='margin: .2in .2in 0'>
this is inconsistant for a screen display, and the browser can NOT interpret correctly that as inches. For screen use px or em.

Your bad alignment in the <table> is due to the default usual alignment for tables and your other text-align setting in the <td>

You might try to take out all <td> and <th> text-align css, and have your table be set as centered with -
      echo "<table style='width: 100%; text-align:center;'>\n";
ans see how that looks to you for alignment. If you still want the "Product Number" to be right aligned , then you can add the <td style='text-align: right;'> to the "Product Number" again.

Also you have two submit form buttons with a single same name, this is incorrect, all form inputs and buttons (submit) MUST have a different Unique name, not used as name anywhere else in that form.

ask questions if you need more info.
Also you have two submit form buttons with a single same name, this is incorrect, all form inputs and buttons (submit) MUST have a different Unique name, not used as name anywhere else in that form.
This is factually inaccurate.  It's perfectly fine to have multiple input controls of the same name.  Otherwise how could radio buttons work?  Default values can be given in hidden fields and these can be overridden by client inputs.  You can have two submit controls of the same name and different values in order to signal different actions in the action= script, something like this:

<input type="submit" name="x" value="Update" />
<input type="submit" name="x" value="Delete" />

Open in new window


Accurate information about how HTML forms work is available from the W3C.
http://www.w3.org/TR/html401/interact/forms.html