2012-02-04 84 views
0

您好我想從JQuery中獲取更改的文本值,但是我無法使用JQUERY選擇編輯文本,因爲編輯文本是從php生成的,同時循環該php代碼查詢數據庫並獲取值的編輯文本,並在我的程序中,我編輯按鈕爲每個編輯文本和當用戶更改編輯文本的值我選擇新值,當用戶單擊編輯按鈕發送此值從get方法到另一個php頁面與jquery $.ajax函數和發送新的價值,該代碼與ajax.But,但我不知道如何選擇編輯文本,它的價值改變,因爲我不知道該編輯文本的ID!。當我爲每個編輯文本設置一個ID我只從$("#id").change().val();獲得第一個編輯文本值。我使用下面的代碼,但它不工作。我是java腳本的初學者,不知道如何解決這個問題!如何使用jquery獲取編輯文本的值

var testAnswer; 

function setNewTestAnswer(id){ 
    testAnswer = $("#id").val(); 
} 
function sendToEdit(pID,phID,thDate,type){ 
    var info = 'pId='+pID+'&phId='+phID+'&testAnswer='+testAnswer+'&thDate='+thDate+'&type='+type; 
} 

第2個功能使用testAnswer用戶在編輯文本中更改。
PHP代碼

<?php 
    include 'Connect.php'; 
    if(match($_POST['pId'], "/^[\d]+$/")){ 
     $pId = $_POST['pId']; 
     $result = mysql_query("select pName, pID, phName, phID, testHistoryDate, type, testAnswer from patient join reception using(pID) join physician using(phID) join testHistory using(rID) join test using(tID) where pID = $pId",$connection); 
    } 
    else 
     die("Insert true value"); 
    while($row=mysql_fetch_array($result)){ 
     echo "<tr><td>"; 
     echo $row["pName"].'</td>'; 
     echo '<td>'.$row["phName"].'</td>'; 
     echo '<td>'.$row["testHistoryDate"].'</td>'; 
     echo '<td>'.$row["type"].'</td>'; 
     $type = $row['type']; 
     $testHistoryDate = $row['testHistoryDate']; 
     ?> 
     <td> 
      <span id='spryTanswer'> 
       <input type='text' name='tAnswer' id='tAnswer' value='<?php echo $row['testAnswer']; ?>' /> 
      </span> 
     </td> 
     <td> 
      <input type='submit' value='Edit' name='edit' id='edit' onclick="sendToEdit('<?php echo $row['pID'] ?>','<?php echo $row['phID'] ?>', '<?php echo $row['testHistoryDate'] ?>', '<?php echo $row['type'] ?>')" /> 
     </td> 
     </tr> 
    <?php } ?> 
+0

很難理解你的問題,只有我讀的是編輯文本。什麼是編輯文本? – ShankarSangoli 2012-02-04 21:07:08

+0

好吧我解決我的問題,謝謝你的貢獻。 刪除我的問題? – 2012-02-04 21:15:43

+0

我使用php爲每個編輯文本生成id,並使用onclick發送該id以獲取其值! – 2012-02-04 21:16:33

回答

0

既然你在php循環中創建元素,你必須確保每個元素都有唯一的id(或者根本沒有id)。您可以使用增量索引或數組中的某個唯一值。乍一看,似乎$row['pID']是一個很好的候選人:

<input id='edit_<?php $row['pID'] ?>' type='submit' value='Edit' ... /> 

之後,你應該能夠針對個別元素。

+0

好的,謝謝我使用這種方法和問題修復 – 2012-02-04 21:33:15

2

TL;博士

所以它不是完全清楚你正在嘗試做的,但我可以解釋一對夫婦的事情,可能的幫助。

  • 在html中id應該是唯一的。你不必遵守這個規則來讓你的頁面工作,但是你發現了一個破壞它的後果之一:jQuery只會找到第一個。

  • 這是一個好主意,基於您的數據的一些獨特的屬性,例如錶行id的html id。

  • 你可以得到更多的創意與您的jQuery選擇例如

    $('input[type="text"]') // gets all the text inputs

  • 使用類。當你想能夠輕鬆地選擇一組html元素時,你應該給他們所有相同的類名稱。一個元素可以有多個類名,許多元素可以共享一個類名。您可以通過類名使用jQuery這樣便選擇它們:

    $('.myclassname')

我認爲你需要改變你的PHP看起來更像這樣:

<span class='spryTanswer'> 
    <input type='text' name='tAnswer' id='tAnswer-<?php echo $row['id'] ?>' value='<?php echo $row['testAnswer']; ?>' /> 
</span> 
相關問題