PHP与使用JavaScript动态表单(codeigniter)数据库 [英] PHP into database with dynamic form with javascript (codeigniter)

查看:180
本文介绍了PHP与使用JavaScript动态表单(codeigniter)数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用阵列插入多个数据(PHP codeIgniter)。但我还是发现了错误。该错误是数组不明确

 插入函数(){    $ hitung = COUNT($ _ POST ['pembicara']);    $ pengisi =爆('',$ _ POST ['pembicara']);
    $马泰=破灭('',$ _ POST ['马泰']);
    $阿拉善=破灭('',$ _ POST ['阿拉善']);    $ datapembicara =阵列(
    id_kegiatan'=> $ X,
    nama_pembicara'=> $ pengisi,
    马泰'=> $马泰,
    阿拉善'=> $阿拉善,
    );    $这个 - > m_admin_smf-> add_pembicara($ datapembicara);
}

在我的var_dump显示像

结果

 阵列(大小= 4)
  id_kegiatan'=>诠释990550
  nama_pembicara'=>字符串'-1,2'(长度= 9)
  马泰'=>字符串'-1,2'(长度= 3)
  阿拉善'=>字符串'-1,2'(长度= 3)阵列(大小= 4)
  id_kegiatan'=>诠释990550
  nama_pembicara'=>字符串'-1,2'(长度= 9)
  马泰'=>字符串'-1,2'(长度= 3)
  阿拉善'=>字符串'-1,2'(长度= 3)

结果应该是像

 阵列(大小= 4)
  id_kegiatan'=>诠释990550
  nama_pembicara'=>串1(长度= 9)
  马泰'=>串1(长度= 3)
  阿拉善'=>串1(长度= 3)阵列(大小= 4)
  id_kegiatan'=>诠释990550
  nama_pembicara'=>串'2'(长度= 9)
  马泰'=>串'2'(长度= 3)
  阿拉善'=>串'2'(长度= 3)

我应该怎么办?

如何,如果像这样?但显示错误

  $ hitung =计数($ _ POST ['pembicara']);
$ datapembicara =阵列();
为($ I = 0; $ I< $ hitung; $ I ++){
    $ datapembicara [] =数组(
        id_kegiatan'=> $ X,
        nama_pembicara'=> $ _ POST ['pembicara'] [$ i],
        马泰'=> $ _ POST ['马泰'] [$ i],
        阿拉善'=> $ _ POST ['阿拉善'] [$ i],
    );
}$这个 - > m_admin_smf-> add_pembicara($ datapembicara);


解决方案

如果您希望它们在一系列批次的,那么你就必须做其他的东西比由于行为将需要从你的不同。你可以用一个简单的循环来创造这样的阵列结构成系列批:

  //控制器
功能插件()
{    $ hitung = COUNT($ _ POST ['pembicara']);
    $ datapembicara =阵列();
    为($ I = 0; $ I< $ hitung; $ I ++){
        $ datapembicara [] =数组(
            id_kegiatan'=> $ X,
            nama_pembicara'=> $ _ POST ['pembicara'] [$ i],
            马泰'=> $ _ POST ['马泰'] [$ i],
            阿拉善'=> $ _ POST ['阿拉善'] [$ i],
        );
    }    后续代码var_dump($ datapembicara);    $这个 - > m_admin_smf-> add_pembicara($ datapembicara);
}

旁注:我建议使用输入类codeigniter,因为它可以处理XSS为你的

  $值= $这个 - >输入 - >后期('值',真); //添加真正的参数标志

然后说以后阵列制成,可以使用 - > insert_batch()活动记录的。它会做多个插入你的,再加上,你的价值观会被自动转义。

  //型号
公共职能add_pembicara($数据)
{
    $这个 - > DB-GT&; insert_batch($的数据);
}

I want to insert multiple data (PHP CodeIgniter) using array. but I still find an error. The error is array is not clear

function insert(){

    $hitung=count($_POST['pembicara']);

    $pengisi=implode(',',$_POST['pembicara']);
    $materi=implode(',',$_POST['materi']);
    $alasan=implode(',',$_POST['alasan']);

    $datapembicara = array(
    'id_kegiatan'   => $x,
    'nama_pembicara'   => $pengisi,                                         
    'materi'      => $materi,                                           
    'alasan'      => $alasan,
    );

    $this->m_admin_smf->add_pembicara($datapembicara);
}

when I var_dump show the result like

array (size=4)
  'id_kegiatan' => int 990550
  'nama_pembicara' => string '1,2' (length=9)
  'materi' => string '1,2' (length=3)
  'alasan' => string '1,2' (length=3)

array (size=4)
  'id_kegiatan' => int 990550
  'nama_pembicara' => string '1,2' (length=9)
  'materi' => string '1,2' (length=3)
  'alasan' => string '1,2' (length=3)

the result is should be like

array (size=4)
  'id_kegiatan' => int 990550
  'nama_pembicara' => string '1' (length=9)
  'materi' => string '1' (length=3)
  'alasan' => string '1' (length=3)

array (size=4)
  'id_kegiatan' => int 990550
  'nama_pembicara' => string '2' (length=9)
  'materi' => string '2' (length=3)
  'alasan' => string '2' (length=3)

what should I do?

How if like this? but show an error

$hitung = count($_POST['pembicara']);
$datapembicara = array();
for($i = 0; $i < $hitung; $i++) {
    $datapembicara[] = array(
        'id_kegiatan' => $x,
        'nama_pembicara' => $_POST['pembicara'][$i],
        'materi' => $_POST['materi'][$i],
        'alasan' => $_POST['alasan'][$i],
    );
}

$this->m_admin_smf->add_pembicara($datapembicara);

解决方案

If you want them on a series of batches, then you'll have to do something other than implode since the behavior will be different from the one you need. You can use a simple for loop to create such array structure into series of batches:

// Controller
function insert()
{

    $hitung = count($_POST['pembicara']);
    $datapembicara = array();
    for($i = 0; $i < $hitung; $i++) {
        $datapembicara[] = array(
            'id_kegiatan' => $x,
            'nama_pembicara' => $_POST['pembicara'][$i],
            'materi' => $_POST['materi'][$i],
            'alasan' => $_POST['alasan'][$i],
        );
    }

    var_dump($datapembicara);

    $this->m_admin_smf->add_pembicara($datapembicara);
}

Sidenote: I'd suggest use input class of codeigniter since it can handle XSS for you.

$value = $this->input->post('value', true); // add true parameter flag

Then after said array is made, you can use ->insert_batch() of active record. It'll do the multiple insertions for you, plus, your values are automatically escaped.

// Model
public function add_pembicara($data)
{
    $this->db->insert_batch($data);
}

这篇关于PHP与使用JavaScript动态表单(codeigniter)数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆