0

this program inserts data (correctly) into fields b4 update but I get the error message when I submit. Can someone tell me what is wrong with my code?

<html><head>
<!--when the paidamt is keyed in, the current date, pd & paidsum are autoinserted-->
<script>
function $_(IDS) { return document.getElementById(IDS); }
function calculate_paid() {
   var pd = document.getElementById("pd");
   var datepaid = document.getElementById("datepaid");
   var amtdue = document.getElementById("amtdue");
   var paidamt = document.getElementById("paidamt");
   var paidsum = document.getElementById("paidsum");
// ********************set up date**********************
  var dateNow = new Date();
  var dayNow = dateNow.getDate();
  var datePaid = (dateNow.getMonth()+1)+"/"+dateNow.getDate()+"/"+dateNow.getFullYear();
datepaid.value = datePaid;
// ***************end date setup*************************
// ********accumulate charges into paidsum & set up pd*** 
amtdue.value = parseFloat(amtdue.value);
paidsum.value = parseFloat(paidsum.value) + parseFloat(paidamt.value);
pd.value = "P";
// ********************* end of calcs ******************
}
</script>
<script type="text/javascript">
window.google_analytics_uacct = "UA-256751-2";
</script>
<script type="text/javascript">
window.google_analytics_uacct = "UA-256751-2";
</script>
</head><body>
<?php
mysql_connect(localhost,root,"");
mysql_select_db(oodb) or die( "Unable to select database");
if(!empty($_POST["submit"]))
{
$invnum = $_POST['invnum'];
$query="SELECT * FROM oocust Where invnum='$invnum'";
$result=mysql_query($query);
if(mysql_num_rows($result))
{
echo "<form action='#' method='post'><b>Invoice Payment :<br /><br />
<table cellspacing=0 cellpadding=0 border=1>
    <tr>
  <th>Inv#</th>
  <th>ord#</th>
  <th>Name</th>
  <th>Description</th>
  <th>Paid Amt</th>
  <th>Amt Due</th>
  <th>Date Paid</th>
  <th>Code</th>
  <th>Total</th>
      </tr>";
while($row = mysql_fetch_assoc($result))
{
 echo "<tr>
<td><input type='text' size=5 name='invnum' value='" . $row['invnum'] . "'></td>
<td><input type='text' size=5 name='ordernum' value='" . $row['ordernum'] . "'></td>
<td><input type='text' size=25 name='bname' value='" . $row['bname'] . "'></td>
<td><input type='text' size=25 name='descr' value='" . $row['descr'] . "'></td>
<td><input type='text' size=7 id='paidamt' name='paidamt' value='" . $row['paidamt'] ."' 
onBlur='calculate_paid(this)'></td>
<td><input type='text' size=7 id='amtdue' name='charges' value='" . $row['amtdue'] ."'></td>
<td><input type='text' size=10 id='datepaid' name='datepaid' value='" . $row['datepaid'] . "'
onBlur='calculate_paid(this)'></td>
<td><input type='text' size=1 id='pd' name='pd' value='" . $row['pd'] . "'
onBlur='calculate_paid(this)'></td>
<td><input type='text' size=7 name='paidsum' value='" . $row['paidsum'] . "'
onBlur='calculate_paid(this)'></td>   
</tr>"; 
}
echo "</table>
<input type='submit' name='update' value='Make Payment' />
</form>";
}
else{echo "No listing for invoice no. $invnum.<br />Please select another.<br />";}
}
if(!empty($_POST["update"]))
{
$sql = "UPDATE payments SET
pd = '" . mysql_real_escape_string($_POST['pd']) . "',
datepaid = '" . mysql_real_escape_string($_POST['datepaid']) . "',
paidamt = '" . mysql_real_escape_string($_POST['paidamt']) . "',
amtdue = '" . mysql_real_escape_string($_POST['amtdue']) . "',
paidsum = '" . mysql_real_escape_string($_POST['paidsum']) . "'
WHERE invnum='".$_POST["invnum"]."'";
// **********************************************
mysql_query($sql) or die("Update query failed.");
// ***********************************************
echo "Record for invoice ".$_POST["invnum"]." has been updated";
}
?>
<form method="post" action="#">
<br />
<input type="text" name="invnum"/> <p>
<input type="submit" name="submit" value="select invoice no."/>
</form>
<script type="text/javascript"><!--
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
//-->
</script>
<script type="text/javascript"><!--
try {
var pageTracker = _gat._getTracker("UA-256751-2");
pageTracker._trackPageview();
} catch(err) {}
//-->
</script>
<script type="text/javascript"><!--
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
//-->
</script>
<script type="text/javascript"><!--
try {
var pageTracker = _gat._getTracker("UA-256751-2");
pageTracker._trackPageview();
} catch(err) {}
//-->
</script>
</body></html>
2
Contributors
10
Replies
11
Views
6 Years
Discussion Span
Last Post by ckdoublenecks
0

Jeez, you certainly don't believe in separating your php/html/js do you??!

1. Try to post to a different page (avoids the reload/refresh double submit)
2. Which form is giving you the problem?

Sorry, this is giving me a headache.

0

sorry I had trouble finding how to separate the two. Yeah I'm sorry 'bout your headache

0

:} No to worry. Which form is causing the issue?

the below code:

<?php
mysql_connect(localhost,root,"");
mysql_select_db(oodb) or die( "Unable to select database");
if(!empty($_POST["submit"]))
{
$invnum = $_POST['invnum'];
$query="SELECT * FROM oocust Where invnum='$invnum'";
$result=mysql_query($query);
if(mysql_num_rows($result))
{
echo "<form action='#' method='post'><b>Invoice Payment :<br /><br />
<table cellspacing=0 cellpadding=0 border=1>
    <tr>
  <th>Inv#</th>
  <th>ord#</th>
  <th>Name</th>
  <th>Description</th>
  <th>Paid Amt</th>
  <th>Amt Due</th>
  <th>Date Paid</th>
  <th>Code</th>
  <th>Total</th>
      </tr>";
while($row = mysql_fetch_assoc($result))
{
 echo "<tr>
<td><input type='text' size=5 name='invnum' value='" . $row['invnum'] . "'></td>
<td><input type='text' size=5 name='ordernum' value='" . $row['ordernum'] . "'></td>
<td><input type='text' size=25 name='bname' value='" . $row['bname'] . "'></td>
<td><input type='text' size=25 name='descr' value='" . $row['descr'] . "'></td>
<td><input type='text' size=7 id='paidamt' name='paidamt' value='" . $row['paidamt'] ."' 
onBlur='calculate_paid(this)'></td>
<td><input type='text' size=7 id='amtdue' name='charges' value='" . $row['amtdue'] ."'></td>
<td><input type='text' size=10 id='datepaid' name='datepaid' value='" . $row['datepaid'] . "'
onBlur='calculate_paid(this)'></td>
<td><input type='text' size=1 id='pd' name='pd' value='" . $row['pd'] . "'
onBlur='calculate_paid(this)'></td>
<td><input type='text' size=7 name='paidsum' value='" . $row['paidsum'] . "'
onBlur='calculate_paid(this)'></td>   
</tr>"; 
}
echo "</table>
<input type='submit' name='update' value='Make Payment' />
</form>";
}
else{echo "No listing for invoice no. $invnum.<br />Please select another.<br />";}
}
if(!empty($_POST["update"]))
{
$sql = "UPDATE payments SET
pd = '" . mysql_real_escape_string($_POST['pd']) . "',
datepaid = '" . mysql_real_escape_string($_POST['datepaid']) . "',
paidamt = '" . mysql_real_escape_string($_POST['paidamt']) . "',
amtdue = '" . mysql_real_escape_string($_POST['amtdue']) . "',
paidsum = '" . mysql_real_escape_string($_POST['paidsum']) . "'
WHERE invnum='".$_POST["invnum"]."'";
// **********************************************
mysql_query($sql) or die("Update query failed.");
// ***********************************************
echo "Record for invoice ".$_POST["invnum"]." has been updated";
}
?>
0

OK, I tidied up the code somewhat. Some people like it like this. It's a matter of personal preference.

...
?>

	<form action="#" method="post"><strong>Invoice Payment :</strong><br /><br />
	<table cellspacing="0" cellpadding="0" border="1">
		<tr>
		  <th>Inv#</th>
		  <th>ord#</th>
		  <th>Name</th>
		  <th>Description</th>
		  <th>Paid Amt</th>
		  <th>Amt Due</th>
		  <th>Date Paid</th>
		  <th>Code</th>
		  <th>Total</th>
		  </tr>
	<?php
	while($row = mysql_fetch_assoc($result)){
	extract($row);
	?>
		<tr>
			<td><input type="text" size="5" name="invnum" value="<?php echo $invnum;?>" /></td>
			<td><input type="text" size="5" name="ordernum" value="<?php echo $ordernum;?>" /></td>
			<td><input type="text" size="25" name="bname" value="<?php echo $bname;?>" /></td>
			<td><input type="text" size="25" name="descr" value="<?php echo $descr;?>" /></td>
			<td><input type="text" size="7" id="paidamt" name="paidamt" value="<?php echo $paidamt;?>" onBlur="calculate_paid(this);" /></td>
			<td><input type="text" size="7" id="amtdue" name="charges" value="<?php echo $amtdue;?>" /></td>
			<td><input type="text" size="10" id="datepaid" name="datepaid" value="<?php echo $datepaid;?>" onBlur="calculate_paid(this);" /></td>
			<td><input type="text" size="1" id="pd" name="pd" value="<?php echo $pd;?>" onBlur="calculate_paid(this);" /></td>
			<td><input type="text" size="7" name="paidsum" value="<?php echo $paidsum;?>" onBlur="calculate_paid(this);" /></td>   
		</tr> 
	<?php
	}
	?>
	</table>
	<input type="submit" name="update" value="Make Payment" />
	</form>
	<?php
	}else{
		echo "No listing for invoice no. $invnum.<br />Please select another.<br />";
	}
}
if(isset($_POST["update"])){
	$sql = "UPDATE payments SET
	pd = '" . mysql_real_escape_string($_POST['pd']) . "',
	datepaid = '" . mysql_real_escape_string($_POST['datepaid']) . "',
	paidamt = '" . mysql_real_escape_string($_POST['paidamt']) . "',
	amtdue = '" . mysql_real_escape_string($_POST['amtdue']) . "',
	paidsum = '" . mysql_real_escape_string($_POST['paidsum']) . "'
	WHERE invnum='".$_POST["invnum"]."'";
	// **********************************************
	mysql_query($sql) or die("Update query failed.");
	
	
	...
?>
0

your code got this message:

UPDATE payments SET pd = 'P', datepaid = '4/19/2011', paidamt = '169.60', amtdue = '', paidsum = '169.6' WHERE invnum='150'

paidsum dropped a zero and no update. Closer!

0
<input type="text" size="7" id="amtdue" name="charges" value="<?php echo $amtdue;?>" />

This is because the id ia amtdue but the name is charges. Change charges to amtdue.

0
<input type="text" size="7" id="amtdue" name="charges" value="<?php echo $amtdue;?>" />

This is because the id ia amtdue but the name is charges. Change charges to amtdue.

I made the change and the results were the same. I put an id in the paidsum but the results were the same.? This poor noob is perplexed.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.