将ajax结果显示在文本框中

时间:2012-08-22 11:11:28

标签: php javascript mysql ajax

我想将ajax查询结果插入到文本框中。当用户选择产品代码时,unitprice应显示在文本框中。输入数量时,unitprice必须与数量相乘并显示在文本框中。一旦所有数据在文本框中可用,日期就需要上传到mysql db。这是我的代码。

<script type="text/javascript">
function showUP(str) {
    if (str==""){
        document.getElementById("UnitPrice").innerHTML="";
        return;
    }
    if (window.XMLHttpRequest)   {
        // code for IE7+, Firefox, Chrome, Opera, Safari   
        xmlhttp=new XMLHttpRequest();  
    } else {
        // code for IE6, IE5   
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    } 
    xmlhttp.onreadystatechange=function(){   
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            document.getElementById("UnitPrice").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","getunitprice.php?q="+str,true);
    xmlhttp.send();
}


function multiply(Quantity) {
    var totalPrice = parseFloat(document.getElementById("UnitPrice").innerHTML)*Quantity;
    document.getElementById("TotalPrice").innerHTML = totalPrice;
}
</script>



</script>

<form action="addorderitemform.php" method="post" name="addorderitemform">



                <table width="600px" border="0" cellspacing="1" cellpadding="3">
                    <tr>
                <th width-"18%>OrderID:</th>
                <td width="60%">
                    <select name="OrderID">
                    <option value="SelectCategory">Select a existing order</option>

                        <?php
                        $query = 'SELECT OrderID FROM customerorder';
                        $result = mysql_query ( $query );
                        while ( $row = mysql_fetch_assoc ( $result ) ) 
                        {
                             print "<option value=\"".$row['OrderID']."\">".$row['OrderID']."</option>\r";
                        }
                        ?>
                        </select></td>
                    </tr>


                                        <tr>
                <th width-"18%>Product:</th>
                <td width="60%">
                    <select name="ProductCode" id="ProductCode" onchange="showUP(this.value)">
                    <option value="SelectCategory">Select product</option>


                        <?php
                        $query1 = 'SELECT ProductCode, ProductName FROM Product';
                        $result1 = mysql_query ( $query1 );
                        while ( $row1 = mysql_fetch_assoc ( $result1 ) ) 
                        {
                             print "<option value=\"".$row1['ProductCode']."\">".$row1['ProductName']."</option>\r";
                        }
                        ?>
                        </select></td>
                         <br/>

                        </tr>

                    <tr>
                <th width-"18%>UnitPrice:</th>
                <td width="60%">
                <input type-"text" name="UnitPrice" id="UnitPrice" size="60" />


                </td>
                </tr>

                <tr>
                <th width-"18%>Quantity:</th>
                <td width="60%">
                <input type-"text" name="Quantity" id="Quantity" onblur= "multiply (this.value)" size="60" />


                </td>
                </tr>

                <tr>
                <th width-"18%>TotalPrice:</th>
                <td width="60%">
                <input type-"text" name="TotalPrice" id="TotalPrice" size="60" />


                </td>
                </tr>

</table>

<input type="submit" value="Add OrderItem" />
<input type="reset" value="Reset" />

</p>
</form>

GETUNITPRICE.PHP

<?php
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', '');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("Order", $con);

$sql="SELECT CostPrice FROM Product WHERE ProductCode = '".$q."'";

$result2 = mysql_query($sql) or die($sql."<br/><br/>".mysql_error());

while($row2 = mysql_fetch_array($result2)) {

  echo "".$row2['CostPrice']."";


}

mysql_close($con);
?> 

然后将文本框中的详细信息上传到mysql数据库

<?php
$OrderID = (trim($_POST['OrderID']));
$ProductCode= (trim($_POST['ProductCode']));
$UnitPrice = (trim($_POST['UnitPrice']));
$Quantity = (trim($_POST['Quantity']));
$TotalPrice= (trim($_POST['TotalPrice']));

$host = "localhost";
$user = "root";
$password = ""; 
$db = "Order";
if (!$con = mysql_connect ($host, $user, $password))
    {$message = "Server is not available. Please try again later";
    echo "$message";
    die ();
    }
//or die ("Cannot connect to Server.");

mysql_select_db ($db) or  die ("Database Order not available.");


$query = "INSERT INTO `OrderItem` (`OrderID`, `ProductCode`, `UnitPrice`, `Quantity`, `TotalPrice`) VALUES ('$OrderID','$ProductCode', '$UnitPrice', '$Quantity', '$TotalPrice')";
$result = mysql_query($query) or die($query."<br/><br/>".mysql_error());
//or die ("Insert into OrderItem failed.".mysql_error());
 echo "<script> alert ('Your Information Was Successfully Saved')</script>";
 header("Location: managesalesorder.php"); 

    exit();
    mysql_close($con);

?>

1 个答案:

答案 0 :(得分:2)

更改

document.getElementById("UnitPrice").innerHTML = xmlhttp.responseText;

document.getElementById("UnitPrice").value = xmlhttp.responseText;