Jump to content

[SOLVED] Drop Down Update Mastery


OldManRiver

Recommended Posts

All,

 

Trying to get some understanding on this code:

<?php
   $sql = "SELECT cli_no, cli_cnm FROM client ORDER BY cli_cnm;";
   $result = mysql_query($sql);
   $comp_list="";
   while ($row = mysql_fetch_assoc($result)) {
      $cn = $row['cli_no'];
      $vl = $row['cli_cnm'];
      $comp_list .= "<option value=$cn>$vl</option>";
   }
   if (if-condition) {
      processing;
   }
?>

           <td width=150 align=left>
               <SELECT NAME="inv_cmp" onchange="this.form.submit()">
               <?php echo $comp_list; ?>
               </SELECT>
           </td>

Need to know whether this code calls current file/page again, or is a javascript needed?

 

Also have seen this code:

           <td width=150 align=left>
               <SELECT NAME="inv_cmp" onchange="load(this.form)">
               <?php echo $comp_list; ?>
               </SELECT>
           </td>

Wonder which actually calls the current PHP page, without needing javascript?

 

I've also seen examples where javascript is used to pickup and parse the selection values and pass them to PHP for processing, but want to stay java free, if I can.

 

Please let me know what the code does and how best to approach a java free solution to my problem.

 

I am trying to populate the remaining fields on my form, by executing a new MySQL query from the selection value.

 

Thanks!

 

OMR

 

Link to comment
Share on other sites

All,

 

So never did get answer on original Q.  Which method it better?

 

              <SELECT NAME="inv_cmp" onchange="this.form.submit()">

 

or

 

              <SELECT NAME="inv_cmp" onchange="load(this.form)">

 

and do they need java or a javascript to run?

 

If they must have java/javascript to run/execute, then how are the "selected option" index number and value passed from:

 

              <OPTION VALUE=$cn>$vl</OPTION>";

 

to PHP for processing in PHP?

 

Thanks!

 

OMR

Link to comment
Share on other sites

when the drop down changes the page is submitted to its self (I don't see a form tag in there but assume there is one).

 

what ever code is on the page that uses the 'inv_cmp' will be affected...

 

Toon,

 

Does not process unless the "Submit" button is clicked.  Need it to update on the change.

 

OMR

Link to comment
Share on other sites

All,

 

Here is current code:

<?php
   require('./functions/db_connect.php');
   $cur_cnt = "001";
   $cur_dat = date("m/d/y");
   $sql = "SELECT inv_no, inv_rep FROM invoice WHERE inv_dat=$cur_dat;";
   $result = mysql_query($sql);
   while ($row = mysql_fetch_assoc($result)) {
      $rct = $row['inv_no'];
      $rep = $row['inv_rep'];
   }
   if (isset($rct)) {
      $cur_cnt = $rct + 1;
   }
   $cur_yrr = date("y");
   $cur_day = date("d");
   $cur_mnt = date("m");
   $cur_pre = $cur_yrr."-".$cur_mnt."-".$cur_day;
   $cur_inv = $cur_pre.$cur_cnt;
   $sql = "SELECT cli_no, cli_cnm FROM client ORDER BY cli_cnm;";
   $result = mysql_query($sql);
   $comp_list="";
   while ($row = mysql_fetch_assoc($result)) {
      $cn = $row['cli_no'];
      $vl = $row['cli_cnm'];
      $comp_list .= "<option value=$cn>$vl</option>";
   }
   $frm_date = "<INPUT TYPE='text' SIZE=25 NAME='inv_dat' VALUE=$cur_dat>";
   $frm_cont = "<INPUT TYPE='text' SIZE=25 NAME='inv_ctt'>";
   $frm_invn = "<INPUT TYPE='text' SIZE=25 NAME='inv_num' VALUE=$cur_inv>";
   $frm_emal = "<INPUT TYPE='text' SIZE=25 NAME='inv_eml'>";
   $frm_ordr = "<INPUT TYPE='text' SIZE=25 NAME='inv_ord'>";
   $frm_addr = "<INPUT TYPE='text' SIZE=25 NAME='inv_adr'>";
   $frm_rpnm = "<INPUT TYPE='text' SIZE=15 NAME='inv_rep'>";
   $frm_fobf = "<INPUT TYPE='text' SIZE=8  NAME='inv_fob'>";
   $frm_city = "<INPUT TYPE='text' SIZE=25 NAME='inv_cty'>";
   $frm_stat = "<INPUT TYPE='text' SIZE=2  NAME='inv_stt'>";
   $frm_zipc = "<INPUT TYPE='text' SIZE=9  NAME='inv_zip'>";
   $frm_phon = "<INPUT TYPE='text' SIZE=25 NAME='inv_phn'>";
   $frm_faxn = "<INPUT TYPE='text' SIZE=25 NAME='inv_fax'>";

   if (isset($HTTP_POST_VARS['process'])) {
      $select = (isset($HTTP_POST_VARS['inv_cmp']) ? $HTTP_POST_VARS['inv_cmp'] : '');
echo "Sel => $select <br>";
      $sql = "SELECT * FROM client WHERE cli_no=$select;";
      $result = mysql_query($sql);
      while ($row = mysql_fetch_assoc($result)) {
         $row_cont = $row['$cli_ctt'];
         $row_emal = $row['$cli_eml'];
         $row_addr = $row['$cli_ad1'];
         $row_add1 = $row['$cli_ad2'];
         $row_add2 = $row['$cli_ad3'];
         if (!is_null($row_add1)) {
            $row_addr .= ", ".$row_add1;
         }
         if (!is_null($row_add2)) {
            $row_addr .= ", ".$row_add2;
         }
         $row_city = $row['$cli_cty'];
         $row_stat = $row['$cli_st'];
         $row_zipc = $row['$cli_zip'];
         $row_phon = $row['$cli_ph'];
         $row_faxn = $row['$cli_fax'];
         $frm_date = "<INPUT TYPE='text' SIZE=25 NAME='inv_dat' VALUE=$cur_dat>";
         $frm_cont = "<INPUT TYPE='text' SIZE=25 NAME='inv_ctt' VALUE=$row_cont>";
         $frm_invn = "<INPUT TYPE='text' SIZE=25 NAME='inv_num' VALUE=$cur_inv>";
         $frm_emal = "<INPUT TYPE='text' SIZE=25 NAME='inv_eml' VALUE=$row_emal>";
         $frm_addr = "<INPUT TYPE='text' SIZE=25 NAME='inv_adr' VALUE=$row_addr>";
         $frm_rpnm = "<INPUT TYPE='text' SIZE=15 NAME='inv_rep' VALUE=$rep>";
         $frm_city = "<INPUT TYPE='text' SIZE=25 NAME='inv_cty' VALUE=$row_city>";
         $frm_stat = "<INPUT TYPE='text' SIZE=2  NAME='inv_stt' VALUE=$row_stat>";
         $frm_zipc = "<INPUT TYPE='text' SIZE=9  NAME='inv_zip' VALUE=$row_zipc>";
         $frm_phon = "<INPUT TYPE='text' SIZE=25 NAME='inv_phn' VALUE=$row_phon>";
         $frm_faxn = "<INPUT TYPE='text' SIZE=25 NAME='inv_fax' VALUE=$row_faxn>";
      }

   }
/*
<SCRIPT LANGUAGE=JavaScript>
<!-- Hide from other browsers
        parent.location = this.form;
// End hiding from other browsers -->
</SCRIPT>
*/
?>

<html>
<head>
<title>MyOps System - Work Order</title>
</head>

<BODY BGCOLOR="#ffFFdd">
   <FORM name="ops" METHOD="POST" ACTION="<?php $_SERVER['PHP_SELF']; ?>">
   <TABLE BORDER=2 CELLPADDING=5 WIDTH=90% height=400 align=center BGCOLOR="#F0F8FF" >
       <TR>
       <TD>
       <TABLE BORDER=0 CELLPADDING=5 WIDTH=95% align=center BGCOLOR="#F0F8FF" class=bd>
           <TR>
           <TD colspan=10 ALIGN=center VALIGN=bottom>
               <H1>MyOps System - Work Order</H1>
               Company Selection Screen
           </td>
           </tr>

           <tr>
           <td width=50 align=right>Company:</td>
           <td width=150 align=left>
               <input type="hidden" name="process" value="">
               <!!SELECT NAME="inv_cmp" onchange="this.form.submit()">
               <SELECT NAME="inv_cmp" onchange="load(this.form)">
               <?php echo $comp_list; ?>
               </SELECT>
           </td>
           <td width=70 align=right>Date:</td>
           <td align=left colspan=7><?php echo $frm_date; ?></td>
           </tr>

           <tr>
           <td align=right>Contact:</td>
           <td align=left><?php echo $frm_cont; ?></td>
           <td align=right>Invoice:</td>
           <td align=left colspan=7><?php echo $frm_invn; ?></td>
           </tr>

           <tr>
           <td align=right>EMail:</td>
           <td align=left><?php echo $frm_emal; ?></td>
           <td align=right>Order No:</td>
           <td align=left width=250 colspan=7><?php echo $frm_ordr; ?></td>
           </tr>

           <tr>
           <td align=right>Address:</td>
           <td align=left><?php echo $frm_addr; ?></td>
           <td align=right>Rep:</td>
           <td align=left colspan=4><?php echo $frm_rpnm; ?></td>
           <td align=right>FOB:</td>
           <td align=left colspan=2><?php echo $frm_fobf; ?></td>
           </tr>

           <tr>
           <td align=right>City:</td>
           <td align=left><?php echo $frm_city; ?></td>
           <td align=right>State:</td>
           <td align=left><?php echo $frm_stat; ?></td>
           <td align=right>Zip:</td>
           <td align=left colspan=5><?php echo $frm_zipc; ?></td>
           </tr>

           <tr>
           <td align=right>Phone:</td>
           <td align=left><?php echo $frm_phon; ?></td>
           <td align=right>Fax:</td>
           <td align=left colspan=7><?php echo $frm_faxn; ?></td>
           </tr>

           <tr>
           <td align=center colspan=10>
               <INPUT TYPE="submit" NAME="submit" VALUE="Submit">
           </td>
           </tr>
       </TABLE>
       </td>
       </TR>
   </TABLE>
   </FORM>
</BODY>
</HTML>

I had suggestion to add the hidden field, then to add a javascript, but script is wrong, cause now get a 404 error.

 

Any help appreciated.

 

Thanks!

 

OMR

 

Link to comment
Share on other sites

All,

 

Final code:

<?php
   require('./functions/db_connect.php');
   $cur_cnt = "001";
   $cur_dat = date("m/d/y");
   $sql = "SELECT inv_no, inv_rep FROM invoice WHERE inv_dat=$cur_dat;";
   $result = mysql_query($sql);
   while ($row = mysql_fetch_assoc($result)) {
      $rct = $row['inv_no'];
      $rep = $row['inv_rep'];
   }
   if (isset($rct)) {
      $cur_cnt = $rct + 1;
   }
   $cur_yrr = date("y");
   $cur_day = date("d");
   $cur_mnt = date("m");
   $cur_pre = $cur_yrr."-".$cur_mnt."-".$cur_day;
   $cur_inv = $cur_pre.$cur_cnt;
   $sql = "SELECT cli_no, cli_cnm FROM client ORDER BY cli_cnm;";
   $result = mysql_query($sql);
   $comp_list="";
   $select = (isset($HTTP_POST_VARS['inv_cmp']) ? $HTTP_POST_VARS['inv_cmp'] : '');
   while ($row = mysql_fetch_assoc($result)) {
      $cn = $row['cli_no'];
      $vl = $row['cli_cnm'];
      if ($select==$row['cli_no']) {
         $comp_list = "<option value=$cn selected>$vl</option>";
      } else {
         $comp_list .= "<option value=$cn>$vl</option>";
      }
   }
   $frm_date = "<INPUT TYPE='text' SIZE=25 NAME='inv_dat' VALUE=$cur_dat>";
   $frm_cont = "<INPUT TYPE='text' SIZE=25 NAME='inv_ctt'>";
   $frm_invn = "<INPUT TYPE='text' SIZE=25 NAME='inv_num' VALUE=$cur_inv>";
   $frm_emal = "<INPUT TYPE='text' SIZE=25 NAME='inv_eml'>";
   $frm_ordr = "<INPUT TYPE='text' SIZE=25 NAME='inv_ord'>";
   $frm_addr = "<INPUT TYPE='text' SIZE=25 NAME='inv_adr'>";
   $frm_rpnm = "<INPUT TYPE='text' SIZE=15 NAME='inv_rep'>";
   $frm_fobf = "<INPUT TYPE='text' SIZE=8  NAME='inv_fob'>";
   $frm_city = "<INPUT TYPE='text' SIZE=25 NAME='inv_cty'>";
   $frm_stat = "<INPUT TYPE='text' SIZE=2  NAME='inv_stt'>";
   $frm_zipc = "<INPUT TYPE='text' SIZE=9  NAME='inv_zip'>";
   $frm_phon = "<INPUT TYPE='text' SIZE=25 NAME='inv_phn'>";
   $frm_faxn = "<INPUT TYPE='text' SIZE=25 NAME='inv_fax'>";

   if (isset($HTTP_POST_VARS['process'])) {
      $sql = "SELECT * FROM client WHERE cli_no=$select;";
      $result = mysql_query($sql);
      $rowcnt = mysql_num_rows($result);
      while ($row = mysql_fetch_assoc($result)) {
         $row_cont = $row['cli_ctt'];
         $row_emal = $row['cli_eml'];
         $row_addr = addslashes($row['cli_ad1']);
         $row_add1 = $row['cli_ad2'];
         $row_add2 = $row['cli_ad3'];
         if (!isset($row_add1)) {
            $row_addr .= ", ".addslashes($row_add1);
         }
         if (!isset($row_add2)) {
            $row_addr .= ", ".addslashes($row_add2);
         }
         $row_city = $row['cli_cty'];
         $row_stat = $row['cli_st'];
         $row_zipc = addslashes($row['cli_zip']);
         $row_phon = addslashes($row['cli_ph']);
         $row_faxn = $row['cli_fax'];
         $frm_date = "<INPUT TYPE='text' SIZE=25 NAME='inv_dat' VALUE=$cur_dat>";
         $frm_cont = "<INPUT TYPE='text' SIZE=25 NAME='inv_ctt' VALUE=$row_cont>";
         $frm_invn = "<INPUT TYPE='text' SIZE=25 NAME='inv_num' VALUE=$cur_inv>";
         $frm_emal = "<INPUT TYPE='text' SIZE=25 NAME='inv_eml' VALUE=$row_emal>";
         $frm_addr = "<INPUT TYPE='text' SIZE=25 NAME='inv_adr' VALUE='".$row_addr."'>";
         $frm_rpnm = "<INPUT TYPE='text' SIZE=15 NAME='inv_rep' VALUE=$rep>";
         $frm_city = "<INPUT TYPE='text' SIZE=25 NAME='inv_cty' VALUE=$row_city>";
         $frm_stat = "<INPUT TYPE='text' SIZE=2  NAME='inv_stt' VALUE=$row_stat>";
         $frm_zipc = "<INPUT TYPE='text' SIZE=9  NAME='inv_zip' VALUE=$row_zipc>";
         $frm_phon = "<INPUT TYPE='text' SIZE=25 NAME='inv_phn' VALUE=$row_phon>";
         $frm_faxn = "<INPUT TYPE='text' SIZE=25 NAME='inv_fax' VALUE=$row_faxn>";
      }

   }
?>

<html>
<head>
<title>MyOps System - Work Order</title>
</head>

<BODY BGCOLOR="#ffFFdd">
   <FORM name="ops" METHOD="POST" ACTION="<?php $_SERVER['PHP_SELF']; ?>">
   <TABLE BORDER=2 CELLPADDING=5 WIDTH=90% height=400 align=center BGCOLOR="#F0F8FF" >
       <TR>
       <TD>
       <TABLE BORDER=0 CELLPADDING=5 WIDTH=95% align=center BGCOLOR="#F0F8FF" class=bd>
           <TR>
           <TD colspan=10 ALIGN=center VALIGN=bottom>
               <H1>MyOps System - Work Order</H1>
               Company Selection Screen
           </td>
           </tr>

           <tr>
           <td width=50 align=right>Company:</td>
           <td width=150 align=left>
               <SELECT NAME="inv_cmp" onchange="document.forms['ops'].submit();">
               <?php echo $comp_list; ?>
               </SELECT>
           </td>
           <td width=70 align=right>Date:</td>
           <td align=left colspan=7><?php echo $frm_date; ?></td>
           </tr>

           <tr>
           <td align=right>Contact:</td>
           <td align=left><?php echo $frm_cont; ?></td>
           <td align=right>Invoice:</td>
           <td align=left colspan=7><?php echo $frm_invn; ?></td>
           </tr>

           <tr>
           <td align=right>EMail:</td>
           <td align=left><?php echo $frm_emal; ?></td>
           <td align=right>Order No:</td>
           <td align=left width=250 colspan=7><?php echo $frm_ordr; ?></td>
           </tr>

           <tr>
           <td align=right>Address:</td>
           <td align=left><?php echo $frm_addr; ?></td>
           <td align=right>Rep:</td>
           <td align=left colspan=4><?php echo $frm_rpnm; ?></td>
           <td align=right>FOB:</td>
           <td align=left colspan=2><?php echo $frm_fobf; ?></td>
           </tr>

           <tr>
           <td align=right>City:</td>
           <td align=left><?php echo $frm_city; ?></td>
           <td align=right>State:</td>
           <td align=left><?php echo $frm_stat; ?></td>
           <td align=right>Zip:</td>
           <td align=left colspan=5><?php echo $frm_zipc; ?></td>
           </tr>

           <tr>
           <td align=right>Phone:</td>
           <td align=left><?php echo $frm_phon; ?></td>
           <td align=right>Fax:</td>
           <td align=left colspan=7><?php echo $frm_faxn; ?></td>
           </tr>

           <tr>
           <td align=center colspan=10>
               <INPUT TYPE="submit" NAME="next" VALUE="Submit">
           </td>
           </tr>
       </TABLE>
       </td>
       </TR>
   </TABLE>
   <input type="hidden" name="process" value="">
   </FORM>
</BODY>
</HTML>

Solution to the problem was two fold:

1. Correct "onchange=" line:    <SELECT NAME="inv_cmp" onchange="document.forms['ops'].submit();">,

2. Making sure there is only one "submit" on the form.  I had to change the submit button name to "next".

 

Thanks all for you help!

 

OMR

 

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.