2012-02-04 19 views
0

こんにちは、私はJQueryからテキストの値を変更したいのですが、JQueryで編集テキストを選択することはできません。編集テキストと私のプログラムでは、すべての編集テキストの編集ボタンがあり、ユーザーが編集テキストの値を変更したときに新しい値を選択し、編集ボタンをクリックすると、getメソッドからこの値をjquery $.ajax関数私はその編集テキストのidを知らないので変更された値を変更するテキストを選択することができますかわからない!と私はすべての編集のテキスト私は1つだけの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の関数use 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

+0

私はあなたの貢献に感謝します。 質問を削除しますか? –

+0

私はすべての編集テキストのidをphpで生成し、そのidをonclickで送信してその値を取得します! –

答えて

0

あなたがしているので、 PHPループ内で要素を作成する場合は、すべての要素に一意のID(またはIDがまったくない)があることを確認する必要があります。インクリメントインデックスまたは配列内の一意の値を使用できます。その後

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

あなたが個々の要素を標的とすることができるようになります。一見すると、$row['pID']が良い候補であると思われます。

+0

ありがとう私はこの方法を使用して問題を解決しました –

2

TL;

DR

だから、あなたがここでやろうとしているが、私は役立つかもしれないカップルの事を説明することができるものを完全に明らかではありません。

  • html idsは一意である必要があります。あなたのページがうまく動作するようにこのルールを守る必要はありませんが、それを破ると結果の1つが見つかりました.jQueryは最初のものだけを見つけます。

  • データのユニークな属性(例:テーブルの行ID)にhtml idsを設定することをお勧めします。

  • あなたは、例えば、あなたのjQueryのセレクタ

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

  • 利用クラスに、より創造的な取得することができます。 html要素のグループのすべてを簡単に選択できるようにするには、それらのクラスにすべて同じクラス名を付ける必要があります。 1つの要素は複数のクラス名を持つことができ、多くの要素はクラス名を共有できます。もしこのようにjQueryを使用して、クラス名によってそれらを選択することができます:私はあなたがより多くの本のように見えるためにあなたのphpを変更する必要があると思う

    $('.myclassname')

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