Изучение, как использовать Ajax с CodeIgniter

Вот вариант с tidyverse. Создайте data_frame с 'var1', separate в три столбца на основе индекса позиции, удалите , в конце строки в столбце 'v3', создайте столбец группировки с gl, чтобы сгруппировать строк в каждых 5 строках, сгруппированных по 'grp', 'v1' и 'v2', summarise по 'v3' путем paste элементов v3 в одну строку

library(tidyverse)
data_frame(var1) %>% 
    separate(var1, into = paste0('v', 1:3), sep= c(1, 5)) %>% 
    mutate(v3 = str_remove(v3, ",$")) %>%
    group_by(grp = as.integer(gl(n(), 5, n())), v1, v2) %>%
    summarise(v3 = toString(v3)) %>%
    ungroup %>%
    select(-grp)
# A tibble: 3 x 3
#  v1    v2    v3                                       
#  <chr> <chr> <chr>                                    
#1 1     0300  010118, 02, 03, 0405, 0512, 0612, 0717   
#2 1     0310  010618, 0221, 0315, 0412, 0517, 0612,0729
#3 1     4510  010517, 0212, 03, 0465, 0588, 0651, 0777 

Или мы можем сделать это в base R, создав разделитель в упомянутых позициях, а затем использовать read.csv

df1 <- read.table(text= sub("^(.)(.{4})(.*),?$", "\\1-\\2-\\3", var1), 
    sep="-", header = FALSE, stringsAsFactors = FALSE, col.names = paste0("v", 1:3))
df1$grp <- as.integer(gl(nrow(df1), 5, nrow(df1)))
aggregate(v3 ~ ., df1, FUN = toString)[-3]
10
задан 21 November 2008 в 06:35
поделиться

1 ответ

Вы просто распечатали бы его в основном и возвратили бы ту информацию с помощью JavaScript:

public function test() {
    $somenumber = $this->input->post('someNumber');
    if ($somenumber == 12) {
        print "Number is 12";
    } else {
        print "Number is not 12";
    }
}

Ваш JavaScript мог бы выглядеть примерно так:

var xhr;
xhr = new XMLHTTPRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        // this is where the return information is
        alert('Status: '+xhr.status+' Response: '+xhr.responseText);
    }
}

xhr.open('POST', '/front/test');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('someNumber=12');

код выше не принимает во внимание конкретные вопросы браузера, но должен работать на firefox/ie7, по крайней мере, я верю.

вот пример jQuery всего вышеупомянутого:

var options = {
    'someNumber' : 12
}

$.post('/front/test', options, function(data) {
    alert(data); // should print "Number is 12"
});
14
ответ дан 3 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: