首页 > 解决方案 > 如何获取存储在 BD 中的 2 个具有相同 ID 的变量?

问题描述

我有一个表格,我在其中输入课程的数据(名称、日期、小时数、演讲者......),其中要求我在课程中添加多个演讲者,

<div class="col-md-6 animate-box">
  <h3>Complete los datos solicitados</h3>
  <form action="creacion_curso_bd.php" method="post" enctype="multipart/form-data" name="form1" target="_self" id="form1">
    <div class="row form-group">
      <!-- nombre curso -->
      <div class="col-md-12">
        <input type="text" name="nombre_curso" id="nombre_curso" class="form-control" placeholder="Nombre del curso">
      </div>
    </div>
    <!-- fin nombre curso -->
    <input type="hidden" id="dir" name="ip" value="<?php echo $ip_usuario; ?>">
    <!-- Podría ser <?=$ip?>, como fomra abreviada -->

    <!-- Fecha del curso -->
    <div class="row form-group">
      <div class="col-md-12">
        <!-- <input class="form-control required" type="text" name="check_in" id="check_in" placeholder="Fecha de realización"> -->
        <input class="form-control required" type="date" name="fecha_curso" id="fecha_curso" placeholder="Fecha de realización">
      </div>
    </div>
    <!-- fin Fecha del curso -->

    <div class="row form-group">
      <div class="col-md-12">
        <input type="text" name="numero_horas" id="numero_horas" class="form-control" placeholder="Cantidad de horas"
          onkeypress="return valideKey(event);">
      </div>
    </div>

    <div class="row form-group">
      <div class="col-md-12">
        <input type="text" name="sigper" id="sigper" class="form-control" placeholder="Codigo SIGPER">
      </div>
    </div>

    <div class="row form-group">
      <div class="col-md-12">
        <input type="text" name="vacantes" id="vacantes" class="form-control" placeholder="Cantidad de vacantes"
          onkeypress="return valideKey(event);">
      </div>
    </div>

    <div class="row form-group">
      <div class="col-md-12">
        <input type="text" name="ubicacion" id="ubicacion" class="form-control" placeholder="Ubicación del curso">
      </div>
    </div>

    <div class="row form-group">
      <div class="col-md-12">
        <textarea name="descripcion" id="descripcion" cols="30" rows="20" class="form-control" placeholder="Descripción del curso"></textarea>
      </div>
    </div>

    <!-- ambito -->
    <div class="row form-group">
      <div class="col-md-12">
        <select name="ambito" id="ambito" class="form-control" style="height: 50px">
          <option value=''>Elija un ambito</option>
              <?php
              $query = $mysqli -> query ("SELECT * FROM ambito");
              while ($valores = mysqli_fetch_array($query)) {
                echo '<option value="'.$valores[id_ambito].'">'.$valores[ambito].'</option>';
              }
              ?>
        </select>
      </div>
    </div>
    <!-- fin ambito -->


    <div class="row form-group" id="dynamic_form">
      <div class="col-md-12">

        <select name="p_name" id="p_name" class="form-control" style="height: 50px">
          <option value=''>Elija un relator</option>
            <?php
              $query = $mysqli -> query ("SELECT id_relator, nombre_relator FROM relatores");
              while ($valores = mysqli_fetch_array($query)) {
                echo '<option value="'.$valores[id_relator].'">'.$valores[nombre_relator].'</option>';
              }
              ?>
        </select>

        <div class="button-group">
          <a href="javascript:void(0)" class="btn btn-primary; color: #1f27ba" id="plus5">Añadir mas relatores</a>
          <a href="javascript:void(0)" class="btn btn-danger" id="minus5">Remover Relator</a>
        </div>

        <script>
          $(document).ready(function() {
            var dynamic_form = $("#dynamic_form").dynamicForm("#dynamic_form", "#plus5", "#minus5", {
              limit: 10,
              formPrefix: "dynamic_form",
              normalizeFullForm: false
            });

            dynamic_form.inject([{
              p_name: 'Hemant',
              quantity: '123',
              remarks: 'testing remark'
            }, {
              p_name: 'Harshal',
              quantity: '123',
              remarks: 'testing remark'
            }]);

            $("#dynamic_form #minus5").on('click', function() {
              var initDynamicId = $(this).closest('#dynamic_form').parent().find("[id^='dynamic_form']").length;
              if (initDynamicId === 2) {
                $(this).closest('#dynamic_form').next().find('#minus5').hide();
              }
              $(this).closest('#dynamic_form').remove();
            });

            $('form').on('submit', function(event) {
              var values = {};
              $.each($('form').serializeArray(), function(i, field) {
                values[field.name] = field.value;
              });
              console.log(values)
              event.preventDefault();
            })
          });
        </script>

        <!-- fin prueba dinamica relatores -->
      </div>
    </div>

    <br>
    <div class="row form-group">
      <div class="col-md-12">

        <a href="relatores_embed.php?keepThis=true&amp;TB_iframe=true&amp;height=280&amp;width=680" class="thickbox">
          <h3>Si quiere agregar otro relator al listado, haga click aquí</h3>
        </a>

        <input type="submit" name="enviar" onclick="valida_envia()" value="Enviar inscripción" class="btn btn-primary"
          id="enviar">
      </div>
    </div>

  </form>
</div>
</div>

</div>
</div>

这会将其发送到我将数据保存在数据库中的 php 存档中:

$curso_nom = mysqli_query($con, "SELECT `nombre_curso` FROM `cursos` WHERE `nombre_curso` = '$nombre_curso'");
echo $curso_nom;

if ($curso_nom == null) {
  $sql = ("INSERT INTO `capacitaciones`.`cursos` (`nombre_curso`, `fechas_curso`, `horas_curso`, `id_ambito`, `codigo_sigper`, `vacantes`, `ubicacion`, `descripcion`, `id_relator`, `disponible`) VALUES ('$nombre_curso', '$fecha_curso', '$horas_curso', '$id_ambito', '$codigo_sigper', '$vacantes', '$ubicacion', '$descripcion', '$id_relatores', 'si')"); //Se insertan los datos a la base de datos y el usuario ya fue registrado con exito.  
  /*  $sql2 = ("INSERT INTO `capacitaciones`.`cursos` (`nombre_curso`, `fechas_curso`, `horas_curso`, `id_ambito`, `codigo_sigper`, `vacantes`, `ubicacion`, `id_relator`, `disponible`) VALUES ('$nombre_curso', '$fecha_curso', '$horas_curso', '$id_ambito', '$codigo_sigper', '$vacantes', '$ubicacion', 'dsffs', 'si');"); */
  
  if (mysqli_query($con, $sql)) {
    scriptAlertGo('!El curso fue inscrito correctamente!', '#');
  } 
  else {
    scriptAlert('!Ha ocurrido un problema en la inscripción, por favor intente nuevamente!', '#');
  }
} 
else {
  scriptAlertGo('El nombre del curso ya esta registrado en la base de datos', '#');
}

问题是保存 id_relator 的变量,因为这些是带有 javascript 脚本的列表框,它根据用户需要添加更多列表框,但是当我想将它们发送到下一个 php 时,我收到以下错误:

注意:未定义索引:C:\Program Files (x86)\EasyPHP5.3.0\www\training\courses\creation_curse_bd.php中的relational_id 69行

不知道是什么问题,如果有人可以指导我,非常感谢,

标签: javascriptphphtml

解决方案


推荐阅读