2013-12-08 32 views
0

您能幫我解決我的代碼問題嗎? 我的代碼如下是一個程序,它可以提取我數據庫中的所有請求,每個提取的數據都會有一個[Yes/No] aprroval選項,它由一個Radio Button生成,一個按鈕將批准發送回我的數據庫,用於輸入備註的文本字段。我的問題是,我的代碼只適用於我單擊生成的第一個按鈕。只要我先點擊繼續按鈕,它就不會起作用。如何從while循環語句中獲得某個值

而且我也無法爲每個記錄獲取我的文本字段的值,它似乎總是讀取所有空文本字段。 請幫我一把。謝謝。注意:我還沒有更新到mysqli,我會在解決問題後執行此操作。謝謝。

<html> 
<title> Offset Requests </title> 

<head><link rel="stylesheet" type="text/css" href="up.css"/> </head> 
<script type="text/javascript"> 
function Approval() 
{ 
var name; 
var rem; 
name=document.getElementById('ename').textContent; 
rem=document.getElementById('remarks').textContent; 
if(document.form1.approval[0].checked==true) 
    { 
     alert(name); 
     window.location.href = "sqli.php?q=Yes" +"&ecode="+name +"&remarks="+rem; 
    } 
else if(document.form1.approval[1].checked==true) 
    { 
     alert(name); 
     window.location.href = "sqli.php?q=No" +"&ecode="+name +"&remarks="+rem;; 
    } 


} 
</script> 
<body> 
<form id="form1" name="form1"> 
<?php 
$conn = mysql_connect("localhost","root",""); 
    if(!$conn) 
     echo ("Could not connect"); 

    mysql_select_db("dbrequests",$conn); 

    $query=mysql_query("Select * from offset_form where Approved=''"); 
    while($fetch=mysql_fetch_array($query)) 
     { 
     $ecode=$fetch['Employee_Code']; 
     $ename=$fetch['Employee_Name']; 
     $epos=$fetch['Employee_Position']; 
     $edpt=$fetch['Employee_Department']; 
     $dleave=$fetch['Date_Leave']; 
     $dreturn=$fetch['Date_Return']; 
     $reason=$fetch['Offset_Reason']; 

     echo "<div id='ename'> $ecode</div>".$ecode ."".$ename." ".$epos." ".$edpt." ".$dleave." ".$dreturn." ".$reason; 
     echo "<input type='radio' name='approval' >Yes"; 
     echo "<input type='radio' name='approval' >No"; 
     echo "<input type='text' name='remarks' id='remarks' size='30'>"; 
     echo"<hr id='br'></hr>"; 
     echo"<input type='button' value='Submit' name='send' onClick='Approval(this.form)'>"; 

     } 

?> 
</form> 
</body> 
</html> 

這是更新我的記錄代碼:

<?php 
require 'sqlicon.php'; 
$q=$_GET['q']; 
$ecode= $_GET['ecode']; 
$remarks=$_GET['remarks']; 
$emp=str_replace(' ', '', $ecode); 
var_dump($emp); 

echo"".$ecode; 
$result=$db->query("UPDATE offset_form SET Approved='".$q."', Manager_Remarks='".$remarks."' WHERE Employee_Code='".$emp."'"); 
header("Location:testingjava.php"); 

>

+0

爲了更清楚,我想獲取所有員工的請假。我會選擇我應該批准的請求。因此,每條記錄都會有一個「是/否」批准單選按鈕,一個文本字段,這是我將我的理由或備註說明爲什麼我不同意或批准請求的位置,以及一個將我的批准瀏覽器發送回數據庫的按鈕。 所以,我的問題是,我只能批准獲取的第一條記錄。如果我選擇修改第一條記錄下的任何記錄,我的代碼將不會生成。 但即使我試圖在第一個文本字段上添加註釋,它仍會給出一個空的數據。 – user3060463

+0

感謝您的想法,但我的代碼是用於從我的記錄中提取所有未決請求,也就是說,它應該提取我尚未拒絕或批准的所有請求。 – user3060463

+0

是的,它會在「已批准」字段中輸入「是」或「否」值,取決於我是否選擇「是」或「否」單選按鈕。但它無法獲取我的文本字段中的數據。 – user3060463

回答

0

由於mysql_fetch_array回報指數鍵,你想關聯的值。與mysql_fetch_assoc()

你的循環替換mysql_fetch_array將是: -

while($fetch=mysql_fetch_assoc($query)) { 

     ......... 
} 

可以調試查詢其工作與否是否喜歡這樣的: -

$query=mysql_query("Select * from offset_form where Approved=''", $conn); 
echo mysql_errno($conn) . ": " . mysql_error($conn) . "\n" 
+0

它仍然無法正常工作..但是謝謝你的回答。 – user3060463

+0

您可以檢查'Select * from offset_form where Approved ='''這個查詢是否返回一些值。 – Roopendra

+0

是的,它工作正常。 – user3060463