如何使用多数组插入数据php javascript mysql
我想用php javascript将多个数组中的数据输入数据库 这里我使用动态添加记录来插入值 这是一个例子:如何使用多数组插入数据php javascript mysql,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我想用php javascript将多个数组中的数据输入数据库 这里我使用动态添加记录来插入值 这是一个例子: <form class="form-horizontal" id="form-produk"> <input name='add_btn' class="btn btn-primary" value='Tambah Record' id='add_btn' type='button'><br><br>
<form class="form-horizontal" id="form-produk">
<input name='add_btn' class="btn btn-primary" value='Tambah Record' id='add_btn' type='button'><br><br>
<div id='container1'></div>
</form>
<script type="text/javascript">
$(document).ready(function() {
var count = 0;
$("#add_btn").click(function(){
count ++;
$('#container1').append(
'<div class="records">'
+ '<textarea id="' + count + '" name="' + count + '" type="text" size="100" class="form-control nma_prod"></textarea>'
+ '<div class="hrgini"><span class="input-group-addon">Rp</span><input style="text-align:right" id="' + count + '" name="'+count+'" class="form-control hrg_prod" type="text" placeholder="Harga Produk"><span class="input-group-addon">,00</span></div>'
+ '<button class="remove_item btn btn-danger" >Hapus</button>'
+ '<br><br></div>'
);
});
$(".remove_item").live('click', function (ev) {
if (ev.type == 'click') {
$(this).parents(".records").fadeOut();
$(this).parents(".records").remove();
}
});
});
</script>
但是这个脚本对我不起作用。有什么建议吗?当您对
name
属性使用整数时,服务器端脚本出现问题
你必须这样做:
$('#container1').append(
'<div class="records">'
+ '<textarea id="id_' + count + '" name="count[]" type="text" size="100" class="form-control nma_prod"></textarea>'
+ '<div class="hrgini"><span class="input-group-addon">Rp</span><input style="text-align:right" id="cnt_' + count + '" name="count2[]" class="form-control hrg_prod" type="text" placeholder="Harga Produk"><span class="input-group-addon">,00</span></div>'
+ '<button class="remove_item btn btn-danger" >Hapus</button>'
+ '<br><br></div>'
);
});
最后:
$v = [];
foreach($_POST['count'] as $key=>$count){
$v[] = "('',$count,{$_POST['count2'][$key]})";
}
$query = "INSERT INTO produk ".implode(',',$v);
我不知道你的名字count
和count2
只是一个临时名称。请换这些
而且永远不要使用mysql_*函数在提供的示例中,为什么要为两个不同的字段创建不同的对象 由于这两个字段是相关的(在一个组中),所以需要将它们放在同一个对象中。因此,这里的关键是对所有具有class
记录的元素进行迭代
bind
和live
已被弃用,因此我在
上使用了
在php
端,最好将查询串联起来执行一次,而不是执行多个查询
JSON
作为数据发送
,JSON\u decode
方法用于从字符串中获取对象
应该使用mysqli.*
方法,而不是注释中提到的mysql.*
,但是在下面提供的代码中,它没有实现
请参阅:
$(文档).ready(函数(){
var计数=0;
$(“#添加btn”)。单击(函数(){
计数++;
$('#container1')。追加(
“+”+“Rp,00”+“Hapus”+”
'
);
});
$('body')。在('click',“.remove_item',function(ev){
$(this.parents(“.records”).fadeOut();
$(this.parents(“.records”).remove();
});
});
$(“#simpan produk”)。在(“单击”,功能(事件){
var url=“pages/produk/produk.input.php”;
var数据=[];
$('.records')。每个(函数(索引,项){
var nma_prod=$(item.find('.nma_prod').val();
var hrg_prod=$(item).find('.hrg_prod').val();
数据推送({
nma_prod:nma_prod,
hrg_产品:hrg_产品
});
});
警报(JSON.stringify(数据));
//发送到进程
$.post(网址:{
数据:JSON.stringify(数据)
},函数(){
$(“.msg”).html(“成功”);
$(“.msg”).fadeIn(3500);
$(“.msg”).show();
美元(“.msg”)。淡出(5500);
$(“#数据产品”).load(主);
//隐藏对话框模态
$('#myModal').modal('hide');
//恢复模态对话框标题
$(“#myModalLabel”).html(“Tambah数据产品”);
});
});
提交
PHP:
<?php
$data = $_REQUEST['data'];
$data = json_decode($data, true);
$query = '';
foreach ($data as $item) {
$nma_prod = $item['nma_prod'];
$hrg_prod = $item['hrg_prod'];
$query .= "INSERT INTO `produk` VALUES('$nma_prod','$hrg_prod');";
}
if ($query) {
$exec = mysql_query($query);
if ($exec) {
echo json_encode(array('msg' => 'Data inserted successfully!'));
exit;
} else {
echo json_encode(array('msg' => 'Something went wrong!'));
exit;
}
} else {
echo json_encode(array('msg' => 'Nothing to Insert!'));
exit;
}
出现了什么错误?无法将动态记录中的值添加到数据库中为什么将第一个值设置为“”(为空)?这是我声明给“”的id(为空),因为我在表中使用了主键注意:mysql.*
函数已弃用,它们已从PHP7中删除,升级到该版本时,代码将停止工作。您不应该使用它们来编写新代码,而应该使用。OP不是以传统的方式提交,他使用的是ajax。。他为什么需要名字?他也没有使用serialize()
…是的,关于name
,你的权利是正确的,但是serialize()
需要收集和发送表单数据。但是如何在serialize()中声明动态记录的post数据?实际上,当我们想要使用serialize()时,我们需要name
@AvistaKautsar:请检查此代码并查看结果。但是,如果我插入多个数据,为什么它不起作用?不起作用不是有效的问题陈述。您需要遵循一些简单的调试步骤。检查在循环中生成的$query
。它有效吗?
// send to process
$.post(url, $('form#form-produk').serialize(),function() {
// ....
});
$v = [];
foreach($_POST['count'] as $key=>$count){
$v[] = "('',$count,{$_POST['count2'][$key]})";
}
$query = "INSERT INTO produk ".implode(',',$v);
<?php
$data = $_REQUEST['data'];
$data = json_decode($data, true);
$query = '';
foreach ($data as $item) {
$nma_prod = $item['nma_prod'];
$hrg_prod = $item['hrg_prod'];
$query .= "INSERT INTO `produk` VALUES('$nma_prod','$hrg_prod');";
}
if ($query) {
$exec = mysql_query($query);
if ($exec) {
echo json_encode(array('msg' => 'Data inserted successfully!'));
exit;
} else {
echo json_encode(array('msg' => 'Something went wrong!'));
exit;
}
} else {
echo json_encode(array('msg' => 'Nothing to Insert!'));
exit;
}