【问题标题】:How to display a full row from one div to another如何显示从一个div到另一个div的整行
【发布时间】:2017-03-28 00:19:27
【问题描述】:

我有一个包含简历表的数据库,客户在其中写下他的所有信息,例如(姓名、姓氏、专业经验等),并且在 html 页面上我有 3 个 div。

第一个 Div 将显示我计划使用 echo $row=name 分隔的整个 CV 表格,并在每行下方使用 <br> 将其分隔并将其显示为真实的 CV 或可能工作申请表。

2nd Div 将仅包含已注册 CV 的姓名列表 并且因为我对 jQuery 或 js 知之甚少,所以我在每个名称下方使用了按钮,因此当单击它时,它会将 $userform 变量与表上具有相同名称的行进行比较,并在第一个 div 上显示整行,将每一行分隔为<br><p>

首先它会刷新第二个 div 的列表:

<div class="content2">
  <h3>LISTA DE CANDIDATOS:</h3>
  <form class="btn" method="post">
    <input type="submit" name="btn_search" value="Actualizar">
  </form>
  <br>
<?php if (isset($_POST["btn_search"])) {
  $con = mysqli_connect("localhost","root","","chevron");
  $q = "SELECT * FROM candidatos ORDER BY id DESC";
  $result = mysqli_query($con,$q);
  while ($row = mysqli_fetch_assoc($result)){
      $userform = $row["nome"] ;
      $_SESSION["userform"] = $userform;
      echo " ".$row['sobrenome'].",  ".$_SESSION['userform']." <br><br>"; ?>
      <form class="btn" action="" method="post">
          <input type="submit" name="post_form" value="Vizualizar CV">
      </form>
      <br>
<?php }
}
?>
</div>

mysqli_fetch_assoc 之后,我声明一个变量$userform 等于行名(这意味着我的语言中的名称),全局变量$_SESSION['userform'] 等于包含行名的$userform 变量。

现在是第一个 div:

<div class="content">
  <br>

  <div class="form_cand">
    <br>
    <?php if (isset($_POST["post_form"])) {


      $con = mysqli_connect("localhost","root","","chevron");
      $q = "SELECT * FROM candidatos WHERE nome = ".$_SESSION["userform"]." ";

      $result = mysqli_query($con, $q);
      if (!$result) {
        echo "ERROR";
      }
      $row = mysqli_fetch_array($result);
      echo "NOME: ".$row["nome"]."<br>";
      echo "SOBRENOME: ".$row["sobrenome"]."<br>";
      echo "MORADA: ".$row["morada"]."<br>";
      echo "BI: ".$row["bi"]."<br>";
      echo "EMAIL: ".$row["email"]."<br>";
      echo "COMPETENCIAS: ".$row["competencias"]."<br>";
      echo "IDIOMAS: ".$row["idiomas"]."<br>";
      echo "OBJECTIVO: ".$row["objectivo"]."<br>";
    }
  ?>
  </div>
</div>

基于会话变量中的$userform 变量,它应该找到与会话变量中的名称相同的名称并显示整行,但我不知道为什么它没有显示?

更新:

我已经完成了第一部分的工作,感谢您的帮助!现在,我在 while 条件上添加了 2 个按钮和一个复选框,当数据发布时,按钮和复选框也会出现,一个按钮是 DENY,另一个是 ACCEPT。

当我单击拒绝时,我希望它从该表中删除当前发布的信息并将其发送到另一个表,例如。可能是“DeniedCV´s”和接受按钮,实际上做同样的事情,但将其发送到“ACCEPTEDCV´s”表。

但是当单击 ACCEPT 按钮并选中复选框时,我希望它是相同的,但这次也将数据发送到其他 2 个表。

这是我到目前为止所做的:

<div class="content">
  <br>

  <div class="form_cand">

    <br>
    <?php if (isset($_POST["post_form"])) {
      $selectedUser = intval($_POST['users']); //pra selecionar o nome clicado na option list

        if($selectedUser > 0){
          $con = mysqli_connect("localhost","root","","chevron");
            $q = "SELECT * FROM candidatos WHERE id = ".$selectedUser." ";
                $result = mysqli_query($con, $q);
                      if (!$result) {
                      echo "ERROR";
                          }

                    $row = mysqli_fetch_array($result);

                      if(is_array($row) && count($row) > 0){
                         echo "<center><strong>CANDIDATO Nº.:</strong>".$row["id"]." <br><br><br></center>";
                          echo "<strong>NOME:</strong><br>".$row["nome"]."<br><br><br>";
                        echo "<strong>SOBRENOME:</strong><br> ".$row["sobrenome"]."<br><br><br>";
                                          echo "<strong>MORADA:</strong><br> ".$row["morada"]."<br><br><br>";
                                          echo "<strong>BI:</strong><br> ".$row["bi"]."<br><br><br>";
                                          echo "<strong>EMAIL:</strong><br> ".$row["email"]."<br><br><br>";
                                          echo "<strong>COMPETENCIAS:</strong><br> ".$row["competencias"]."<br><br><br>";
                                          echo "<strong>IDIOMAS: </strong><br>".$row["idiomas"]."<br><br><br>";
                                          echo "<strong>OBJECTIVO:</strong><br> ".$row["objectivo"]."<br>"; ?>

                                          <center>
                                          <form class="decisions" action="" method="post">

                                          <p>
                                            Se achar esta candidatura excepcional e quiser mostra-la ao ADMINISTRADOR marque a caixinha pequena que esta apos o botão qualificado!
                                          </p>
                                          <input type="submit" name="btn_deny" value="NÃO QUALIFICADO">

                                          <!-- botao negar -->
                                          <?php if (isset($_POST['btn_negar'])) {

                                                  $selectedUser = intval($_POST['users']);

                                                  if($selectedUser > 0){
                                                      $con = mysqli_connect("localhost","root","","chevron");
                                                      $q = "SELECT * FROM candidatos WHERE id = ".$selectedUser." ";

                                                      $result = mysqli_query($con, $q);

                                                      if (!$result) {
                                                          echo "ERROR";
                                                      }

                                                      $row = mysqli_fetch_array($result);

                                                      if(is_array($row) && count($row) > 0){
                                                             //I WANTED TO PUT ANOTHER $q =  wich inserts Into another table
                                                             //and then add another $q = wich deletes it from the current table
                                                          



                                          } ?>
                                           <!-- botao negar -->
                                          <input type="submit" name="btn_aceitar" value="QUALIFICADO">
                                          <!-- botao aceitar -->
                                          <?php if (isset($_POST['btn_accept'])) {

                                          } ?>
                                           <!-- botao aceitar -->
                                          <input type="checkbox" name="checkbox_recomend" value="Recomendar ao Administrador">
                                          </form>
                                          </center>
                                            <?php  }
                                               }

                                             }
                                             ?>

  </div>


</div>

【问题讨论】:

    标签: javascript php jquery html


    【解决方案1】:

    在您的 while 循环中,您正在创建多个具有相同按钮名称且没有任何输入的表单,只需打印信息即可。

    正确的方法是使用某种列表(例如选择下拉菜单)并根据所选用户显示正确的信息: html 看起来像:

    <form class="btn" action="" method="post">
        <select name="users">
            <?php while ($row = mysqli_fetch_assoc($result)){ ?>
    
                <option value="<?php echo $row['id'] ?>">
                    <?php echo ' '.htmlspecialchars($row['sobrenome']).', '.htmlspecialchars($row['nome']) ?>
                </option>
    
            <?php } ?>
        </select>    
    
        <input type="submit" name="post_form" value="Vizualizar CV" />
    

    然后提交后:

    <?php 
    
    if (isset($_POST["post_form"])) {
    
        $selectedUser = intval($_POST['users']); // This is how we extract the chosen item from the drop-down
    
    
        if($selectedUser > 0){
            $con = mysqli_connect("localhost","root","","chevron");
            $q = "SELECT * FROM candidatos WHERE id = ".$selectedUser." ";
    
            $result = mysqli_query($con, $q);
    
            if (!$result) {
                echo "ERROR";
            }
    
            $row = mysqli_fetch_array($result);
    
            if(is_array($row) && count($row) > 0){
                echo "NOME: ".$row["nome"]."<br>";
                echo "SOBRENOME: ".$row["sobrenome"]."<br>";
                echo "MORADA: ".$row["morada"]."<br>";
                echo "BI: ".$row["bi"]."<br>";
                echo "EMAIL: ".$row["email"]."<br>";
                echo "COMPETENCIAS: ".$row["competencias"]."<br>";
                echo "IDIOMAS: ".$row["idiomas"]."<br>";
                echo "OBJECTIVO: ".$row["objectivo"]."<br>";
            }
         }
    }
    
    ?>
    

    您不需要将信息存储在 $_SESSION 超全局变量中。通过表单传输数据时,最佳做法是使用 ID 而不是字符串。我们没有在选项值中使用名称,而是使用了 id。

    如果你想实现同样的事情,不刷新,那么你应该使用AJAX

    编辑:由于您要求提供示例 AJAX 代码,请先查看此answer

    您必须根据自己的需要进行一些更改。首先添加以下javascript代码:

     <script>
            $('input[name="post_form"]').on('click',function(){
               var chosenID = $('select[name="users"]').val();
    
               if(chosenID > 0){
                     $.ajax({
                        url: 'yourfile.php?ID = ' + chosenID,
                        type: 'GET',
                        dataType: 'html',
                        success: function (data) {
                            $('#userData').html(data);
                        }
                    });
               } 
            });
      </script>
    

    您还应该添加 div 元素:

    <div id="userData"></div>
    

    您现在要做的就是在 $_GET 超全局下的yourfile.php 文件中获取 ID,然后重复我之前发布的 PHP 代码。

    【讨论】:

    • 非常感谢它成功了!!!但是当使用 AJAX 进行实时处理时会不会很复杂?我的意思是代码?因为我学得很快,你可以向我展示基础知识,但不知道它是如何完成的,请告诉我步骤
    • 我已经编辑了答案并添加了一个 AJAX 示例。
    • 谢谢,但我不明白 yourfile.php 部分,我应该在那里添加什么 php 文件以及它的用途?
    • 我已经添加了 2 个按钮和一个复选框,因为当发布 cv 时,这些按钮也会随之出现,但我没有试图改变你的代码并以某种方式调整它,当我点击 DENY 它会从当前表中删除该用户数据并将其发送到另一个表(例如,称为 deletedCV´s),然后接受按钮将其发送到 AcceptedCV´s 表但都在同一个脚本上,我编辑了问题让你看看我做了什么。
    猜你喜欢
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2011-08-03
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多