получение ajax для обновления соответствующего div в результатах строки mySQL - PullRequest
0 голосов
/ 23 июля 2011

У меня есть этот код AJAX:

<script type="text/javascript">
function updateAssigned(assigned , ticketid)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
 if (xmlhttp.readyState==4 && xmlhttp.status==200)
 {
document.getElementByID('origassigned').innerHTML=xmlhttp.responseText;
 }
} 
xmlhttp.open("GET","ajax_php/assigned.php?assigned=" + assigned + "&ticketid=" + ticketid,true);
xmlhttp.send();
}
</script>

И этот HTML

<DIV CLASS="assigned">
  <DIV ID="origassigned"></DIV>
  <SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
       <option>OPTION 1</option>
       <option>OPTION 2</option>
  </SELECT>
</DIV>

<DIV CLASS="assigned">
  <DIV ID="origassigned"></DIV>
  <SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
       <option>OPTION 1</option>
       <option>OPTION 2</option>
  </SELECT>
</DIV>

<DIV CLASS="assigned">
  <DIV ID="origassigned"></DIV>
  <SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
       <option>OPTION 1</option>
       <option>OPTION 2</option>
  </SELECT>
</DIV>

Я не могу заставить AJAX обновить соответствующий DIV. Он прекрасно обновляет мою базу данных, но изменяет только 1-й DIV с именем «назначенный», даже если я обновляю второй DIV.

Любые идеи, на что мне следует изменить свой код AJAX, чтобы он распознавал, какой DIV обновлять? Спасибо!

ОБНОВЛЕНИЕ: Изменены div, чтобы не иметь одинаковые идентификаторы, чтобы быть более веб-совместимым. До сих пор не знаю, как сказать AJAX, какой div обновлять.
Sidenote: они генерируются из результата запроса mySQL. Каждая группировка - это отдельная строка. но все они приходят из одного шаблона. Таким образом, ИМЯ КЛАСС и ID должны быть одинаковыми в каждой группе.

<DIV CLASS="assigned">
<DIV CLASS="origassigned" NAME="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
   <option>OPTION 1</option>
   <option>OPTION 2</option>
</SELECT>
</DIV>

<DIV CLASS="assigned">
<DIV CLASS="origassigned" NAME="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
   <option>OPTION 1</option>
   <option>OPTION 2</option>
</SELECT>
</DIV>

<DIV CLASS="assigned">
<DIV CLASS="origassigned" NAME="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
   <option>OPTION 1</option>
   <option>OPTION 2</option>
</SELECT>
</DIV>

Ответы [ 2 ]

1 голос
/ 23 июля 2011

ваш HTML неверен ..

Одна страница должна иметь уникальный идентификатор, и вы присваиваете одинаковый идентификатор origassigned каждому div, потому что он всегда захватывает первый div с ID=origassigned и обновите этот div снова и снова .. вместо этого используйте класс .. или присвойте разные идентификаторы каждому div ..

Спасибо

0 голосов
/ 23 июля 2011

Вам нужно иметь отдельные имена и идентификаторы для трех вариантов выбора.Таким образом, ваш ajax-код может обрабатывать обновляемый элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...