Php 如何将多个值插入数据库?
我试图在数据库中插入多个值,这些值来自jQuery脚本,当您单击空格时,该脚本会生成一个标记 我试图在标签上加上一个名字,但它只插入到数据库中,最后一个标签,我想插入所有标签 这是我的密码Php 如何将多个值插入数据库?,php,jquery,Php,Jquery,我试图在数据库中插入多个值,这些值来自jQuery脚本,当您单击空格时,该脚本会生成一个标记 我试图在标签上加上一个名字,但它只插入到数据库中,最后一个标签,我想插入所有标签 这是我的密码 <script type='text/javascript'> $(window).load(function(){ function closer(){ $('#close').live('click', function() { $(this).parent(
<script type='text/javascript'>
$(window).load(function(){
function closer(){
$('#close').live('click', function() {
$(this).parent().remove();
});
}
$('#tags').keypress(function(e) {
if(e.which == 32) {
var tx = $('#tags').val();
if (tx) {
$(this).val('').parent().before('<li class="tags"><span><input type="hidden" value="'+tx+'" name="tags">'+tx+'</input></span><a style="cursor:pointer;" id="close">[x]</a></li>');
closer();
}
}
});
});
</script>
<?php
include(PATH_MODULE . '/joboffers/view/joboffers_view.php');
//add job offer function
function addjo(){
connect();
addjoview();
//check if the button was clicked
if (isset($_POST['add_jo'])){
if ($_POST['job_category']) {
$job_category = mysql_real_escape_string($_POST['job_category']);
$check1 = 0;
} else {
$check1 = 1;
}
if ($_POST['description']) {
$description = mysql_real_escape_string($_POST['description']);
$check2 = 0;
} else {
$check2 = 1;
}
if ($_POST['job_name']) {
$job_name = mysql_real_escape_string($_POST['job_name']);
$check3 = 0;
} else {
$check3 = 1;
}
if ($_POST['hiring_manager']) {
$hiring_manager = mysql_real_escape_string($_POST['hiring_manager']);
$check4 = 0;
} else {
$check4 = 1;
}
if ($_POST['tags']) {
$tags = mysql_real_escape_string($_POST['tags']);
$check5 = 0;
} else {
$check5 = 1;
}
if ($_POST['localization']) {
$localization = mysql_real_escape_string($_POST['localization']);
$check6 = 0;
} else {
$check6 = 1;
}
if ($_POST['attributes']) {
$attributes = mysql_real_escape_string($_POST['attributes']);
$check7 = 0;
} else {
$check7 = 1;
}
if ($_POST['contract_type']) {
$contract_type = mysql_real_escape_string($_POST['contract_type']);
$check8 = 0;
} else {
$check8 = 1;
}
if ($_POST['professional_exp']) {
$professional_exp = mysql_real_escape_string($_POST['professional_exp']);
$check9 = 0;
} else {
$check9 = 1;
}
//verify if all fields are right
if ($check1 == 0 && $check2 == 0 && $check3 == 0 && $check4 == 0 && $check5 == 0 && $check6 == 0 && $check7 == 0 && $check8 == 0 && $check9 == 0){
$query =("INSERT INTO job_offers (job_category, description, job_name, hiring_manager, tags, localization, attributes, contract_type, profissional_experience) VALUES ('" . $job_category . "','" . $description . "','" . $job_name . "','" . $hiring_manager . "','" . $tags . "', '" . $localization . "', '" . $attributes . "', '" . $contract_type . "', '" . $professional_exp . "')");
db_query($query, '+');
echo "Congratulations! You have been successfully registered in our system.";
} else {
echo "Ops, something went wrong!";
}
}
}
?>
$(窗口)。加载(函数(){
函数closer(){
$('#close').live('click',function()){
$(this.parent().remove();
});
}
$(“#标记”)。按键(功能(e){
如果(e.which==32){
var tx=$('#tags').val();
中频(tx){
$(this.val('').parent()在(''+tx+'[x] ')之前;
closer();
}
}
});
});
HTML
工作类别
描述
职务名称
招聘经理
标签
本地化
属性
合同类型
专业经验
尝试更改此选项
<input type="hidden" value="'+tx+'" name="tags">
这将在表中的tags
字段中插入一个以逗号分隔的标记列表。如果您希望它是空间分隔的,只需使用内爆(“,$\u POST['tags'])
话虽如此,我还是建议您重新构建数据库,这样您的
job\u offers
表中就不会有tags
列。相反,您将有一个job\u offer\u tags
表,该表将包含id
、job\u id
和tag
,并且您只在tag
列中输入单个标记。yes@PatrikQ您是对的……但我在上面的代码中没有看到任何查询,这就是为什么我只是分享一个示例的原因:(我没有调用任何函数,jQuery为我做了这件事
<input type="hidden" value="'+tx+'" name="tags">
<input type="hidden" value="'+tx+'" name="tags[]">
if ($_POST['tags']) {
$tags = mysql_real_escape_string(implode(",", $_POST['tags']));
$check5 = 0;
} else {
$check5 = 1;
}