php - 使用选择框动态创建行使用php在mysql中选择多个值

标签 php jquery mysql

<div class="panel-body">
    <div id="lobrows">
        <div class="form-group">
            <div class="col-sm-4"><label>Reson</label>
                <select class="form-control selectpicker" data-live-search="true" name="reson[]" required="required">
                    <option>--Select--</option>
                    <?php
                    foreach($ob->showDataall("select * from tblname") as $value) { ?>
                        <option value="<?php echo $value['field_id']; ?>"><?php echo $value['field']; ?></option>
                    <?php
                    }
                    ?>
                </select>
            </div>
            <div class="col-sm-4"><label>Service </label>
                <select class="form-control selectpicker" data-live-search="true" name="service[]" id="service" multiple="multiple">
                    <option>--Select--</option>
                    <option value="1">List 1</option>
                    <option value="2">List 2</option>
                    <option value="3">List 3</option>
                    <option value="4">List 4</option>
                </select>
            </div>
            <div class="col-sm-4"><label>Name </label>
                <input type="text" class="form-control" name="name[]" placeholder="Name" />
            </div>
        </div>
    </div>
    <a href="#" class="pull-right" id="add"><i class="fa fa-plus"></i>&nbsp;add</a>
</div>

<script type="text/javascript">
    $(document).ready(function() {
        $('#add').click(function(e) {
            e.preventDefault();
            var i=$('.mrbtm').length+1;
            $('#lobrows').append('<div class="mrbtm"><div class="form-group"><div class="col-sm-4"><label>Reson </label><select class="form-control selectpicker" data-live-search="true" name="reson[]"><option>--Select--</option><?php foreach($ob->showDataall("select * from tblname") as $value){?><option value="<?php echo $value['field_id']; ?>"><?php echo $value['field']; ?></option><?php }?></select></div><div class="col-sm-4"><label>Service </label><select class="form-control selectpicker" data-live-search="true" name="service[]" id="service'+i+'" multiple="multiple"><option>--Select--</option><option value="1">List 1</option><option value="2">List 2</option><option value="3">List 3</option><option value="4">List 4</option></select></div><div class="col-sm-4"><label>Name </label><input type="text" class="form-control" name="name[]" placeholder="Name" required="required" /></div></div><a href="#" class="pull-right remove"><i class="fa fa-minus"></i> Remove</a><br /></div>');
            $('.selectpicker').selectpicker();
            $('.selectpicker').selectpicker('refresh');
        });
        $(document).on('click', '.remove', function(e) {
            e.preventDefault();
            $(this).parent('div').remove();
            i--;
        });
    });
</script>

如果我点击添加按钮,在每一行中创建新行,里面有一个选择框,我有很多选项,我应该一次选择多个选项,它应该保存在数据库中

这是我的 php 代码

<?php
foreach ($reson as $id => $value) {
    $reson = ($reson[$id]);
    $namep = ($name[$id]);
    $rsid = $ob->insert_data('tbl_reson',array("reson" => $reson, "name" => $namep), true);
    foreach ($service as $ii => $valu) {
        $r_service = ($service[$ii]);
        $ob->insert_data('tbl_service',array("reson_id" => $rsid, "service" => $r_service));
    }
}
?>

如何解决这个问题

我需要将值保存在不同的表中,第一个表是 tbl_reson,第二个表是 tbl_service,reson 和名称插入到第一个表中,服务插入到第二个表中

最佳答案

要使用 Ajax 和 PHP 创建动态选择选项菜单,只需三个步骤:- 制作一个 PHP 文件并为选择选项菜单定义标记和脚本 制作一个 CSS 文件并为选择选项菜单定义样式 连接数据库并发送数据

第 1 步。制作一个 PHP 文件并为选择选项菜单定义标记和脚本 我们制作一个 PHP 文件并用名称 select.php 保存它

<html>
<head>
<link rel="stylesheet" type="text/css" href="select_style.css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function fetch_select(val)
{
 $.ajax({
 type: 'post',
 url: 'fetch_data.php',
 data: {
  get_option:val
 },
 success: function (response) {
  document.getElementById("new_select").innerHTML=response; 
 }
 });
}

</script>

</head>
<body>
<p id="heading">Dynamic Select Option Menu Using Ajax and PHP</p>
<center>
<div id="select_box">
 <select onchange="fetch_select(this.value);">
  <option>Select state</option>
  <?php
  $host = 'localhost';
  $user = 'root';
  $pass = '';
  mysql_connect($host, $user, $pass);
  mysql_select_db('demo');

  $select=mysql_query("select state from places group by state");
  while($row=mysql_fetch_array($select))
  {
   echo "<option>".$row['state']."</option>";
  }
 ?>
 </select>

 <select id="new_select">
 </select>
	  
</div>     
</center>
</body>
</html>

在这一步中,我们从位置表中获取状态并插入到我们的第一个选择选项菜单中,然后我们使用调用 fetch_select() 的 onchange 事件;将 ajax 请求传递给 fetch_data.php 并获取结果并插入我们的第二个选择选项菜单的函数

第 2 步.制作 CSS 文件并为选择选项菜单定义样式 我们制作一个 CSS 文件并以名称 select_style.css 保存它

body
{
 background-color:#E6E6E6;
 font-family:helvetica;
}
#heading
{
 text-align:center;
 margin-top:150px;
 font-size:30px;
 color:blue;
}
#select_box
{
 width:500px;
 background-color:#819FF7;
 padding:10px;
 height:200px;
 border-radius:5px;
 box-shadow:0px 0px 10px 0px grey;
}
select
{
 width:400px;
 height:50px;
 border:1px solid #BDBDBD;
 margin-top:20px;
 padding:10px;
 font-size:20px;
 color:grey;
 border-radius:5px;
}

第三步.连接数据库并发送数据 我们制作了一个 PHP 文件并保存它,并命名为 fetch_data.php,用于连接和获取数据,然后根据 ajax 请求将数据发送到 select.php 文件。

<?php
if(isset($_POST['get_option']))
{
 $host = 'localhost';
 $user = 'root';
 $pass = '';
 mysql_connect($host, $user, $pass);
 mysql_select_db('demo');

 $state = $_POST['get_option'];
 $find=mysql_query("select city from places where state='$state'");
 while($row=mysql_fetch_array($find))
 {
  echo "<option>".$row['city']."</option>";
 }
 exit;
}
?>

关于php - 使用选择框动态创建行使用php在mysql中选择多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41690801/

相关文章:

php - 压缩字符串数据以供存储和检索

php - 从 jquery timepicker 读取输入并将其传递给 php 脚本

php - CakePHP:值未保存到 Db

php - 远程连接到 MySQL 数据库

mysql - 在 WHERE … IN 中启用重复项?

php - 在 mysql 数据库中插入多个字符串的更好方法

php - 在 JSON 列中存储多个字段 (Nova CMS)

javascript - 未捕获的语法错误 : Unexpected token x with jQuery plugin?

jquery - 如何使用多个按钮修复 Ajax 提交中的未验证错误 token laravel

jQuery - 如果文本输入在已经获得焦点时单击,则执行某些操作