Форма post массива в последовательности post в php codeigniter - PullRequest
0 голосов
/ 09 октября 2018

У меня есть форма с 10 различными полями ввода, которая добавляется в любом порядке.

Пример: прикрепленное изображение Form

Код ниже для получения данных:

$news['paragraph'] = $this->input->post('paragraph');
$news['sub_heading'] = $this->input->post('sub_heading');       
$news['blurb'] = $this->input->post('blurb');       
$news['gallery_image'] = $this->input->post('gallery_image');       
$postdescription = $this->input->post('postdescription');
$news['pd_output'] = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $postdescription);   
$news['youtube_url'] = $this->input->post('youtube_url');       
$news['caption'] = $this->input->post('caption');       
$news['facebook'] = $this->input->post('facebook');
$news['twitter'] = $this->input->post('twitter');       
$news['instagram'] = $this->input->post('instagram');
$empty_data = array_filter($news);
$keys = array_keys($news_array);
    foreach($news_array as $key => $value){ 
        foreach($value as $val){
            $data_two = array( 
                'array_key'     => $key,
                'content'       => $val,
                'news_id'       => $this->input->post('object_id'),
                'created_on'    => date("Y-m-d"),
            );
            $this->db->insert('tbl_news_content',$data_two);
        }
    }   

Получение массива типа в цикле foreach

[paragraph] => Array
    (
        [0] => 1
        [1] => 2
    )

[sub_heading] => Array
    (
        [0] => 1
        [1] => 2
    )

Я получаю ключи и значение из массива;но я хочу, чтобы мои данные были введены так, как это было при добавлении формы.

изображение подзаголовка абзаца изображение абзаца

У меня есть одна таблица с 3 столбцами

id key_name content

Значением Key_name будет Key. Значением содержимого будет значение ключа

Проблема в том, что данные вставляются в виде

id key_name content 1 абзац 1 2 параграф 2 3 sub_heading1 4 sub_heading 2

данные не вставляются в порядке, указанном при добавлении формы.

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Спасибо sietse85 за то, что заглянули в код и постарались ответить на мой вопрос.Я изменил имя ввода каждого поля, добавив $ x и перед добавлением «-» и разнесением, удалив то же самое перед вставкой.

Вот код, если он кому-то помогает.

    $data = $this->input->post();
    $objectId = $data['object_id'];
    unset($data['which_ever_field']);
    foreach($data as $key => $value){
        $exp = explode("-",$key);
        $data_two = array(
            'array_key'     => $exp[0],
            'content'       => $value,
            'news_id'       => $objectId,
        );
        $this->db->insert('tbl_news_content',$data_two);                    
    }
0 голосов
/ 09 октября 2018

Я предполагаю, что это то, что вы пытаетесь достичь, также предполагается, что столбец идентификатора INT INT ПЕРВИЧНЫЙ КЛЮЧ AUTO_INCREMENT:

foreach ($news as $key => $value) {

    $sql = sprintf('INSERT INTO your_table (key_name, content) 
        VALUES("%s", "%s")',
        $key, $value
    );
    //execute query in loop

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