2012-01-23 2 views
0

Я использую Codeigniter и, кажется, немного застрял в функции. У меня есть список названий на домашней странице:Добавить функцию ajax для нескольких элементов

<?php foreach($sqlquery->result() as $item): ?> 

    <h1><?php echo $item->name; ?></h1> 
<button onlick="loadXMLDoc()">Change</button> 
<?php endforeach; ?> 
<div id="myDiv">This content will change when button is pressed!</div> 

Я хочу, чтобы загрузить содержимое в myDiv DIV от http://mysite.com/index.php/home/show/9/comm. Вид шоу будет отображать данные в зависимости от того, какой идентификатор (9) и какие категории (комм) находится в URL:

<script type="text/javascript"> 
function loadXMLDoc() 
{ 
var xmlhttp; 
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("myDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 

xmlhttp.open("GET","http://mysite.com/index.php/home/show/9/comm ", true); 
xmlhttp.send(); 
} 
</script> 
<button onlick="loadXMLDoc()">Change</button> 

Я пытался добавить функцию в Еогеасп и изменил GET URL, но не смог получить его работать:

xmlhttp.open("GET","http://mysite.com/index.php/home/show/<? echo $item->id; ?>/<? echo $item->cat; ?> ", true); 

ответ

0

вы имеете жестко запрограммированный идентификатор элемента в функцию loadXML док, поэтому неважно, где вы называете его от, он всегда будет получать одни и те же данные. Вам нужно пройти в ИО пункт, связанный с кнопкой, которая была нажата, на минимум:

function loadXMLDoc(id) { 
        ^^--add this 
    blah blah blah 
    xmlhttp.open("GET","http://mysite.com/index.php/home/show/' + id + '/comm ", true); 
                  ^^^^^^^^^^--- add this 
    blah blah blah 
} 

и

<?php foreach($sqlquery->result() as $item): ?> 
    <h1><?php echo $item->name; ?></h1> 
<button onlick="loadXMLDoc(<?php echo $item->id ?>)">Change</button> 
          ^^^^^^^^^^^^^^^^^^^^^^^---add this 

Помимо этого, рассмотреть вопрос о переходе на JQuery. очень легко сделать ajax-материал с помощью jquery (вся ваша функция loadxmldoc может быть уменьшена до SINGLE строка с jquery). И вы также можете исключить необходимость вставлять идентификаторы элементов в вызов функции и использовать некоторые простые поисковые запросы dom для получения связанного идентификатора непосредственно из домашней страницы веб-страницы.

Смежные вопросы