2013-06-27 35 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 ...或提交表格 –