简体   繁体   English

jQuery,Codeigniter使用load和replaceWith

[英]Jquery, codeigniter working with load and replaceWith

This is code for generating page: 这是用于生成页面的代码:

<div id="mali_oglasi">
    <?php foreach ($mgs as $key) : ?>
    <p class="mali_oglas">
        <span class="name"><?php echo $key['name'] ?></span>
        <span class="body"><?php echo $key['body'] ?></span>
        <span class="contact_author"><?php echo $key['contact_author'] ?></span>
        <span class="date_created"><?php echo $key['date_created'] ?></span>
        <span class="date_expires"><?php echo $key['date_expires'] ?></span>
        <span class="email"><?php echo $key['email'] ?></span>
    <?php foreach ($lokacija as $lok) : ?>
    <?php if($lok['id_location'] == $key['location_id']) : ?>
        <span class="lokacija" id="<?php echo $lok['id_location'] ?>"><?php echo $lok['name'] ?></span>
    <?php endif ?>
    <?php endforeach; ?>

    <?php foreach ($kategorija as $kat) : ?>
    <?php if($kat['id_category'] == $key['category_id']) : ?>
        <span class="kategorija" id="<?php echo $kat['id_category'] ?>"><?php echo $kat['name'] ?></span>
    <?php endif ?>
    <?php endforeach; ?>
    <a class="obrisi" id="<?php echo $key['id_global_info'] ?>">Obrisi</a>
    <a class="izmeni" id="<?php echo $key['id_global_info'] ?>">Izmeni</a>
</p>
    <?php endforeach; ?>
</div>

which will give this result: 这将产生以下结果:

<div id="mali_oglasi">
        <p class="mali_oglas">

        <span class="name">fbsd</span>
        <span class="body">sdhdsf</span>
        <span class="contact_author">mirko</span>
        <span class="date_created">2012-03-15 11:24:19</span>
        <span class="date_expires">2012-04-14 11:24:19</span>
        <span class="email">a@a.com</span>

                <span class="lokacija" id="1">Pirot</span>

                <span class="kategorija" id="1">Auto i Moto</span>
                                                                                                                                                                                                            <a class="obrisi" id="19">Obrisi</a>
    <a class="izmeni" id="19">Izmeni</a>
</p>
        <p class="mali_oglas">
        <span class="name">dsh</span>

        <span class="body">dshg</span>
        <span class="contact_author">mirko</span>
        <span class="date_created">2012-03-15 11:17:52</span>
        <span class="date_expires">2012-04-14 11:17:52</span>
        <span class="email">a@a.com</span>
                <span class="lokacija" id="1">Pirot</span>


                <span class="kategorija" id="1">Auto i Moto</span>
                                                                                                                                                                                                            <a class="obrisi" id="18">Obrisi</a>
    <a class="izmeni" id="18">Izmeni</a>
</p>....
</div>

and JS for replaceWith and load : 和JS用于replaceWithload

$(parent).on('click', '.izmeni', function() {
    var name = $(this).siblings('.name').text();
    var body = $(this).siblings('.body').text();
    var email = $(this).siblings('.email').text();
    var contact_author = $(this).siblings('.contact_author').text();
    var id_lok = $(this).siblings('.lokacija').attr("id");
    var id_kat = $(this).siblings('.kategorija').attr("id");

    $(this).siblings('.name').replaceWith('<input value="' + name + '" />');
    $(this).siblings('.body').replaceWith('<textarea>' + body + '</textarea>');
    $(this).siblings('.date_created').hide();
    $(this).siblings('.date_expires').hide();
    $(this).siblings('.email').replaceWith('<input value="' + contact_author + '" />');
    $(this).siblings('.lokacija').replaceWith(function(){
        $(this).load("<?php echo base_url() ?>form/location", {'id' : id_lok})
    });
    $(this).siblings('.kategorija').replaceWith(function(){
        $(this).load("<?php echo base_url() ?>form/category", {'id' : id_kat})
    });

});

load is calling following page (for lokacija ): 负载正在调用以下页面(针对lokacija ):

<select>
<?php foreach ($lokacija as $lok) : ?>
    <option 
    <?php if($lok['id_location'] == $id) : ?>
        selected="selected"
    <?php endif ?>>
        <?php echo $lok['name'] ?>
    </option>
    <?php endforeach; ?>
</select>

Everything except lokacija and kategorija is replaced, but in the firebug I am getting positive response (page requested page is loaded without the errors but it is not displayed). 除了lokacija和kategorija之外的所有内容都已替换,但是在Firebug中,我得到了肯定的响应(请求的页面已加载,没有错误,但未显示)。 What am I doing wrong? 我究竟做错了什么?

Dosent LOAD and REPLACEWITH both replace the content, so you are replacing the replaced the content. Dosent LOAD和REPLACEWITH都替换了内容,因此您要替换替换的内容。

So can't you just either add the ID to the load method, or make a normal ajax GET and the use the replacewith function? 因此,您不能只是将ID添加到load方法中,还是使普通ajax GET并使用replacewith函数吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM