tableA tabA_id name value
------------------------------------
Row1 25 nameA 1.25
Row2 26 nameB 4.85
Row3 27 nameA 3.25
tableB tabA_id mytabA_id multiple_tabA_id
--------------------------------------------------
Row1 25 1 1
Row2 25 1 3
Row3 25 1 4
Row4 26 2 1
Row5 26 2 2
Row6 27 1 1
Row7 27 1 2
Row8 27 1 4
tableC tabC_id name
--------------------------
Row1 1 nameA
Row2 2 nameB
Row3 3 nameC
Row4 4 nameD
表C是用户列表。表A是我们有用户名,值的表。在表B中,我们有类似于tableA的视图,因为mytabA_id是来自tableA的名称,而multiple_tabA_id是属于多个数组的这些用户的ID。
第一个问题是将多个select保存到DB(到表A)。 第二个问题是对表B的INSERT行依赖于tableA。
我想在表A中动态添加新行。 我有一个源代码来添加JQuery的新行。我认为这很好。
function Add(){
counter += 1;
$("#example2 tbody").last().append(
"<tr>"+
"<td>"+counter+ "</td>"+
"<td><input id='name_" + counter + "' type='text' class='form-control'/></td>"+
"<td><input id='value_" + counter + "' type='text' class='form-control'/></td>"+
"<td><select multiple class='form-control' id='multiple'>"+
"<?php $sql = mysql_query('select tabC_id, name from tableC'); while($row=mysql_fetch_array($sql)){ $name=$row['name']; $tabC_id=$row['tabC_id']; ?> <option value='<?echo $tabC_id;?>'><?echo $name;?></option><?}?>"+
"</select></td>"+
"<td><img src='./img/save-icon.png' class='btnSave'/><img src='img/delete-icon.png' class='btnDelete'/></td>"+
"</tr>"
);
$(".btnSave").bind("click", Save);
$(".btnDelete").bind("click", Delete);
};
行。比我将类型值保存到变量并将它们发送到php文件。文本是正确的,但我不知道多重选择是否正确。请找我一个错误。
function Save(){
var par = $(this).parent().parent();
var tdname = par.children("td:nth-child(2)");
var tdvalue = par.children("td:nth-child(3)");
var tdmultiple = par.children("td:nth-child(4)");
var name = tdname.children("input[type=text]").val();
var value = tdvalue.children("input[type=text]").val();
var multiple = $( "#multiple" ).val() || [];
jQuery.post("table_save_ajax.php", {
name:name,
value:value,
multiple:multiple
}, function(data, textStatus){
if(data == 1){
$('#response').html("Successfull!!");
$('#response').css('color','green');
$('td:nth-child(5)').hide();
tdname.html(tdname.children("input[type=text]").val());
tdvalue.html(tdvalue.children("input[type=text]").val());
tdmultiple.html(multiple.join( ", " ));
}else{
$('#response').html("Some Error Occurred");
$('#response').css('color','red');
}
});
table_save_ajax.php
配置中的仅与DB连接。这是对的。
<?php
include("config.php");
$name = $_POST['name'];
$value = $_POST['value'];
$multiple = $_POST['multiple'];
$sql = mysql_query("INSERT INTO tableA (name, value, multiple) VALUES ('$name','$value','$multiple')");
if(mysql_affected_rows()>0){
echo "1";
}else{
echo "2";
}
?>
没有多重选择,所有事情都是正确的。而且我想知道如何通过多重选择来纠正它。我想知道如何将数据INSERT到tableB。如何从数组中解析此数据并保存到DB。 感谢您的回复。
答案 0 :(得分:0)
我试过这个,这对我有好处。 它是 table_save_ajax.php
$sql = mysql_query("INSERT INTO tableA (name, value) VALUES ('$name','$value')");
if($sql){
$sqlselect = mysql_query("SELECT id FROM tableA ORDER BY id DESC LIMIT 1");
if(mysql_num_rows($sqlselect) == 1){
$row=mysql_fetch_array($sqlselect);
$lastid=$row['id'];
foreach ($multiple as &$value) {
$sqlmultiple = mysql_query("INSERT INTO tableB (tabA_id, mytabA_id, multiple_tabA_id) VALUES ('$lastid', '$name', '$value',)");
if(!$sqlmultiple){
$sqldelete = mysql_query("DELETE FROM tableA WHERE id = '$lastid'");
}
}
}
}