Получение данных Post для функции jquery из представления в codeigniter с использованием циклов - PullRequest
1 голос
/ 14 августа 2011

У меня есть следующий вид в codeigniter- скажем, edit_res_view-

<html>
<table>
    <? foreach ($list as $key => $value): ?>
        <tr><td><?= $key ?> :</td><td><input type="text" name='<?= $key ?>' size="25" value='<?php echo $value; ?>'/></td></tr>
    <? endforeach; ?>

    <tr><td colspan="2"><center><input type="submit" id="submit" size="40" value="SAVE" />

</table>

Теперь у меня есть другая функция jquery в другом представлении, которая принимает значения из атрибутов name этой формы вотправить данные POST в другую функцию -

$("#submit").live("click",function(){

    $.ajax({
        url: "http://localhost/codeigniter_local/index.php/manage_resources/doupdate_des",
        type:"POST",                                         
        data:"d_id="+$("[name='d_id']").val()+
              "&cpu_brand="+$("[name='cpu_brand']").val()+
              "&processor="+$("[name='processor']").val()+
              "&ram="+$("[name='ram']").val()+
              "&hdd="+$("[name='hdd']").val()+
              "&mac_id_wired="+$("[name='mac_id_wired']").val()+
              "&mac_id_wireless="+$("[name='mac_id_wireless']").val()+
              "&os="+$("[name='os']").val()+
              "&os_license_no="+$("[name='os_license_no']").val()+
              "&monitor_sno="+$("[name='monitor_sno']").val()+
              "&keyboard_sno="+$("[name='keyboard_sno']").val()+
              "&mouse_sno="+$("[name='mouse_sno']").val()+
              "&sno="+$("[name='sno']").val()+
              "&date_of_purchase="+$("[name='date_of_purchase']").val()+
              "&warranty="+$("[name='warranty']").val()+
              "&comments="+$("[name='comments']").val(),

        success:function(html){

            oTable.fnReloadAjax('http://localhost/codeigniter_local/index.php/manage_resources/json/1');
            alert("Done !");
            $("#form1").dialog("close");
        },  
        ERROR: function(html){                                             
            alert(html);                                        
        }  
    });
} );//for submit

Теперь проблема заключается в том, что я хочу циклически перебирать значения атрибута «data:» функции jquery вместо того, чтобы жестко кодировать его, как я делал выше.

Как это сделать?(кстати, массив $ list передается в качестве аргумента edit_res_view через мой контроллер).

1 Ответ

1 голос
/ 14 августа 2011

Примерно так должно работать с использованием функции jQuery map :

var postData = $("#form1 input:text").map ( function (J, node) {
    var jThis   = $(node);
    return jThis.attr ('name')  + '=' +  jThis.val ();
} ).get ().join ('&');


$.ajax({
    url:  "http://localhost/codeigniter_local/index.php/manage_resources/doupdate_des",
    type: "POST",                                         
    data: encodeURI (postData)
    ... ...


Этот код предполагает, что форма имеет идентификатор "form1", и помогаетубедитесь, что используются только правильные формы ввода.

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