2012-02-04 46 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> 
相关问题