2012-02-04 1 views
0

Привет, я хочу получить измененное текстовое значение из JQuery, но я не могу выбрать текст редактирования с помощью JQUERY, потому что редактировать тексты, созданные из php while loop, этот запрос php-кода в базе данных и получить значение текстов редактирования и в моей программе у меня есть кнопка редактирования для каждого текста редактирования, и когда пользователь изменил значение текста редактирования, я выбираю новое значение, и когда пользователь нажимает кнопку редактирования, отправьте это значение из метода get на другую php-страницу с помощью функции jquery $.ajax и отправьте новое значение для этого php-кода с ajax. Но я не знаю, как я могу выбрать текст редактирования, который изменил его значение, потому что я не знаю 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-я функция, использующая тест. Ответьте, что пользователь изменил текст редактирования.
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

Я генерирую идентификатор для каждого редактирования текста с помощью php и отправляю его с помощью onclick, чтобы получить его значение! –

ответ

0

Поскольку вы создавая элементы внутри php-цикла, вы должны быть уверены, что каждый элемент имеет уникальный идентификатор (или вообще нет идентификатора). Вы можете использовать либо инкрементирующий индекс, либо некоторое уникальное значение в вашем массиве. На первый взгляд, кажется, что $row['pID'] является хорошим кандидатом:

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

После того, что вы должны быть в состоянии целевых отдельных элементов.

+0

Хорошо спасибо, я использую этот метод и исправленную проблему –

2

Т.Л., др

Так что не совсем понятно, что вы пытаетесь сделать здесь, но я могу объяснить пару вещей, которые могли бы помочь.

  • in html ids должен быть уникальным. Вам не нужно подчиняться этому правилу, чтобы ваша страница работала, но вы обнаружили одно из последствий, если нарушите ее: jQuery найдет только первый.

  • Это хорошая идея, чтобы основать html-идентификаторы на каком-то уникальном атрибуте ваших данных, например, на идентификаторе строки таблицы.

  • Вы можете получить более творчески с селекторов 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> 
Смежные вопросы