2013-06-27 32 views
0

您好我真的是新手,在编程和做一些PHP开发以支持个人承诺。将传递的值从javascript返回到php

我写了一个JavaScript来做一些计算并返回答案。我想从我的php中访问这个值并打印出来。

以下是代码组件。

<?php include 'dbconnection.php'; ?> 
<?php 

    $Kg=0.00; 
$Rate=0.00; $MinusBags=0.00; $Amount = 0.00; 
$KgIntoRate=0.00; 
//$Amount = $KgIntoRate - $MinusBags; 



//execute the SQL query and return records 
$result = mysql_query("SELECT EmployeeName FROM employees"); 
$result2 = mysql_query("SELECT SRate FROM scraprates where SYear=YEAR(CURRENT_DATE()) AND SMonth=MONTHNAME(CURRENT_DATE())"); 
$temp1 = mysql_fetch_array($result2); 
$Rate = $temp1['SRate']; 
//$Rate=mysql_fetch_array($result2); 


//fetch the data from the database 
try{ 
while ($row = mysql_fetch_array($result)) { 
    echo "<tr><td>".$row{'EmployeeName'}."</td>"; 
    echo "<td><input type='text' name='Kg' id='Kg' onChange='CalcKgIntoRate();'/></td>"; 
    echo "<td>".$Rate."</td>"; 


// $KgIntoRate = $_GET['php_KgIntoRate']; 
    //echo "<td>".$_GET['php_KgIntoRate']."</td>"; 
    echo "<td>".$KgIntoRate."</td>"; 

    echo "<td><input type='text' name='MinusBags'/></td>"; 
    echo "<td>".$Amount."</td></tr>"; 
} 
} 
catch(Exception $e) 
{echo "error".$e;} 
?> 

<script type="text/javascript"> 
//$Kg= $('#Kg').val(); 
function CalcKgIntoRate(){ 
var Kg=document.getElementById('Kg').value; 
var php_rate = "<?php echo $Rate; ?>"; 
var php_KgIntoRate = "<?php echo $KgIntoRate; ?>"; 
//document.write(Kg); 
php_KgIntoRate=Kg*php_rate; 
return php_KgIntoRate; 
} 
</script> 

<?php 
//function CalcKgIntoRate(){ 
//$KgIntoRate = $Kg * $Rate; 
//echo "<td>".$KgIntoRate."</td>"; 
//} 


//close the connection 
mysql_close($dbhandle); 
?> 

我想要做的是这样的。名称和比率来自两个数据库表。我想根据输入的Kg(在文本字段的变化事件)计算KgIntoRate,并在Kg * Rate字段中显示值。

我看到我需要使用Ajax。但不知道该怎么做。感谢一些有关代码的帮助。如果它可以帮助你

检查:

+1

[**请不要在新代码'mysql_ *'功能**](HTTP:/ /bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – h2ooooooo

+0

你想留在同一个PHP页面吗?我的意思是,如果我们在JAVASCRIPT将发布的下一页中将值赋予php变量,你介意吗? –

+0

如果你想留在同一页面上,我们必须使用AJAX ...其他方面,我们可以使用JAVASCRIPT创建一个表单,并将其发布到另一个PHP页面,我们可以愉快地接受它到php变量 –

回答

1

你可以做到这一点wihtout阿贾克斯,如果你的计算是在JavaScript处理。

例如 的变化是PHP代码:

$i = 0; // define outside the loop 

echo "<td><input type='text' name='Kg' id='Kg".$i."' onChange='CalcKgIntoRate(".$i.");'/></td>"; 
echo "<td id='rate".$i."'>".$KgIntoRate."</td>"; 
echo "<td id='kg_into_rate".$i."'>".$Amount."</td></tr>"; 
$i++; 

JS代码:

function CalcKgIntoRate(i) { 
    var kg = document.getElementById('Kg'+i).value; 
    var rate = document.getElementById('rate'+i).innerHTML; 
    var kg_into_rate = document.getElementById('kg_into_rate'+i); 

    // here is your calculation login 
    // suppose you store the calculation in an another variable 
    var calVal = parseFloat(kg*eval(rate)); 
    kg_into_rate.innerHTML = calVal; 
} 
+0

的Onchange事件中,感谢你的回应..但它没有奏效。让我再解释一下。我使用以下列生成一个php表格。 1.员工名称 - >从数据库表中拉出,名为'employees'2. Kg - >输入公斤数量的文本字段3.本月费率 - 从数据库表中拉出,称为'scraprates'4. Kg *费率 - >在这里,我想乘以用户输入的Kg金额与费率并显示在列中(这里没有文本框)。我想要为Kg文本框的Onchange事件发生此计算 – user2527186

+0

代码已更新。现在检查它会工作。我检查了我的机器。 – skparwal

1

我想在你的榜样你的思念是刚好路过值返回到输入字段。

function CalcKgIntoRate(){ 
var Kg=document.getElementById('Kg').value; 
var php_rate = "<?php echo $Rate; ?>"; 
var php_KgIntoRate = "<?php echo $KgIntoRate; ?>"; 
//document.write(Kg); 
php_KgIntoRate=Kg*php_rate; 
//return php_KgIntoRate; 

// here! instead of returning the value, set it as the value of your Input 
document.getElementById('Kg').value = php_KgIntoRate;} 

,或者你可以简单地做在PHP计算....

$result1 = $Rate * $KgIntoRate; 
echo "<tr><td>".$row{'EmployeeName'}."</td>"; 
echo "<td><input type='text' name='Kg' id='Kg' value='".$result1."'/></td>"; 
echo "<td>".$Rate."</td>"; 
+0

让我多解释一下。我使用以下列生成一个php表格。 1.员工名称 - >从名为'employees'的数据库表中拉出来 2. Kg - >输入公斤数量的文本字段 3.本月费率 - >从数据库表中拉出的名为'scraprates'的数据表 4. Kg * Rate - >这里我想将用户输入的Kg金额乘以费率并显示在列中(这里没有文本框)。我想这个计算发生在Kg文本框的Onchange事件 – user2527186

+0

haaa ok现在我明白了,所以你需要更新rate列,为该列指定一个Id,然后更新它的innerHTMl echo“”。$ Rate。“”; 在js函数中加入这个 document.getElementById('rateColumn')。innerHTML = php_KgIntoRate; –

+0

如果你需要更新任何Db值,那么你将需要一些Ajax ...或提交表格 –