繁体   English   中英

选择带有两个Sql查询的下拉菜单

[英]Select dropdown with two Sql query

我的“选择”有一些困难

在我的选择/菜单中,显示所有选项来自数据库中的表( table_db_email

在此表( tb_code_prmtn11_email )中,我有两个字段: fld_email_id fld_name_email

它在这里工作是一个代码

<select name="email_adress_menu" id="email_adress_menu"  class="valid"  onchange="submit()">
<?php
  echo "<option selected=\"selected\" value=''>Choose your name</option>"; 
  $req_email_adress_menu =   "SELECT DISTINCT id_email, fld_name_email, fld_adresse_email FROM $table_db_email ORDER BY fld_name_email ";
  $rep_email_adress_menu =  mysql_query($req_email_adress_menu, $cnx) or die( mysql_error() ) ;

  while($show_email_adress_menu = mysql_fetch_assoc($rep_email_adress_menu)) {
    echo '<option value="'.$show_email_adress_menu['id_email'].'"';
    //if($primes==$show_email_adress_menu['fld_name_email']){echo " selected";} //display to select an option!!!!!!!!!!!!!!!!
    echo '>'.$show_email_adress_menu['fld_name_email'].'  - '.$show_email_adress_menu['fld_adresse_email'].'</option>';
  }
?>
</select>

我还有另一个来自其他表的信息: tb_code_prmtn11 (包含有关人的信息)

我有几个领域:

  • id_resultat
  • fld_name
  • fld_email_id; fld_email_id键( fld_email_id )参考tb_code_prmtn11_emailid_email )删除对更新id_email无操作;)

我想将此菜单放在另一个网页上,并且此选择必须通过选择tb_code_prmtn11第二张表中找到的信息的选项来显示如下所示的所有选项: tb_code_prmtn11

我怎样才能做到这一点 ?

SELECT td.id_resultat,td.fld_email_id,email.fld_name_email 
  FROM $table_db td
  JOIN $table_db_email email ON td.fld_email_id = email.id_email 
 WHERE td.id_resultat = $id 

该代码也可以使用,但是我不知道如何在菜单中包括第二个查询...


您的代码有效...我看到我的选择:有效...它显示所有选项, 但没有选中的选项

所以第二个查询有效:(在第42行)

我在FireFox中得到以下代码:

27   <form id="form-fan" method="post" action="edit.php">

    <option value="tomo">TOTO MONO  - toto.mono@test.com</option>
<option value="kito">KIKI TOTO - kiki.toto@test.com</option>

因此,我希望选择显示选项和其他选项,但是我不能...我的菜单可以使用,但是可以选择任何选项,但是,实际上,有一个选项被选中,因为在我的数据库中,每个选项都有一个

我尝试了第一个查询(您的代码中的第18行)

SELECT tbl.id_resultat,tbl.fld_email_id,email.fld_nom_email,email.id_email
                                   FROM tb_code_prmtn11 tbl 

                                   INNER JOIN tb_code_prmtn11_email email
                                   ON tbl.fld_email_id = email.id_email 

                                   WHERE tbl.id_resultat='27'

* $ table_db tbl * => tb_code_prmtn11

* $ table_db_email *-> tb_code_prmtn11_email

它正在工作... ** id_resultat:27

fld_email_id:kito

fld_nom_email:KIKI TOTO

id_email:kito **

那么,如何在我的选择中显示与其他选项一起选择的正确选项? 我如何在FireFox中获得以下代码:27

    <option value="tomo">TOTO MONO  - toto.mono@test.com</option>
<option value="kito"   selected>KIKI TOTO - kiki.toto@test.com</option>

我检查了我的变量ID:没关系...这是您的新代码,并进行了更改以适应我的页面:

    <?php

include"../bd_db/connection.php";

include"../bd_db/selection.php";

    $id=$_GET['id'];
     echo $id;

if (isset($_POST) && !empty($_POST))
{
    if (array_key_exists('ajaxId', $_POST))
    {
         if ((int)$_POST['ajaxId'] <= 0)
         {
             throw new Exception("go to hell");
         }
     $query = "SELECT td.id_resultat as id, email.fld_name_email AS name FROM " . $table_db . " td INNER JOIN " . $table_db_email . " email ON td.fld_email_id = email.id_email WHERE td.id_email = " . $_POST['ajaxId']; //!!!!! line 18


     $result = mysql_query($query, $cnx);

     if (mysql_num_rows($result) > 0)
     {
          $data = array();
          while ($row=mysql_fetch_array($result))
          {
               $data[$row["resultat"]] = $row["name"];
          }

          echo json_encode($data);
          exit();
     }
}

if (array_key_exists('select-big-fan', $_POST))
{
    // you've found a big fan selected
}
}
$query = "SELECT DISTINCT id_email AS id, fld_nom_email AS name, fld_adresse_email AS email FROM " . $table_db_email . " ORDER BY name"; //second query works :(line 42)

$result = mysql_query($query, $cnx);

?>
<?php if (mysql_num_rows($result) > 0) : ?>
   <form id="form-fan" method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
   <select name="select-fan" id="select-fan">
   <?php while ($row=mysql_fetch_array($result)) : ?>
      <option value="<?php echo $row["id"] ?>"><?php echo $row["name"] ?> - <?php echo $row["email"] ?></option>
   <?php endwhile ?>
   </select>
   </form>
   <script type="text/javascript">
       jQuery(document).ready(function(){
           jQuery("#select-fan").change(function(){
               var fanId = jQuery(this).val();
               jQuery.ajax(function(){
                  url: "<?php echo $_SERVER["PHP_SELF"] ?>",
                  data: {ajaxId: fanId},
                  success: function(data){
                       selectBigFan = jQuery('<select>', {name: 'select-bigfan', id: 'select-bigfan'});
                       jQuery.each(data, function(bigFanId, bigFanText){
                            optionBigFan = jQuery('<option>' {value: bigFanId, text: bigFanText});
                            optionBigFan.appendTo(selectBigFan);
                       });
                       selectBigFan.insertAfter(jQuery('#select-fan'));
                       jQuery('<input>', {type: 'submit', value: 'send'});
                  }
               });
           });
       });

   </script>
<?php else : ?>
   <p>Yup, there's nothing here, do u have beer ?</p>
   <?php 
endif 
?>

祝你今天愉快


这是您的代码,其中包含我所做的更改以适应我的页面...

    <?php

include"../bd_db/connection.php";

include"../bd_db/selection.php";
$id=$_GET['id'];
     echo $id;

if (isset($_POST) && !empty($_POST))
{
    if (array_key_exists('ajaxId', $_POST))
    {
         if ((int)$_POST['ajaxId'] <= 0)
         {
             throw new Exception("go to hell");
         }

         $query = "SELECT td.id_resultat as id, email.fld_nom_email AS name FROM " . $table_db . " td INNER JOIN " . $table_db_email email ON td.fld_email_id = email.id_email WHERE td.fld_email_id = " . $_POST['ajaxId']"; //!!!!! la ligne 19






         $result = mysql_query($query, $cnx);

         if (mysql_num_rows($result) > 0)
         {
              $data = array();
              while ($row=mysql_fetch_array($result))
              {
                   $data[$row["resultat"]] = $row["name"];
              }

              echo json_encode($data);
              exit();
         }
    }

    if (array_key_exists('select-big-fan', $_POST))
    {
        // you've found a big fan selected
    }
}

$query = "SELECT DISTINCT id_email AS id, fld_nom_email AS name, fld_adresse_email AS email FROM " . $table_db_email . " ORDER BY name";

$result = mysql_query($query, $cnx);

?>
<?php if (mysql_num_rows($result) > 0) : ?>
   <form id="form-fan" method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
   <select name="select-fan" id="select-fan">
   <?php while ($row=mysql_fetch_array($result)) : ?>
      <option value="<?php echo $row["id"] ?>"><?php echo $row["name"] ?> - <?php echo $row["email"] ?></option>
   <?php endwhile ?>
   </select>
   </form>
   <script type="text/javascript">
       jQuery(document).ready(function(){
           jQuery("#select-fan").change(function(){
               var fanId = jQuery(this).val();
               jQuery.ajax(function(){
                  url: "<?php echo $_SERVER["PHP_SELF"] ?>",
                  data: {ajaxId: fanId},
                  success: function(data){
                       selectBigFan = jQuery('<select>', {name: 'select-bigfan', id: 'select-bigfan'});
                       jQuery.each(data, function(bigFanId, bigFanText){
                            optionBigFan = jQuery('<option>' {value: bigFanId, text: bigFanText});
                            optionBigFan.appendTo(selectBigFan);
                       });
                       selectBigFan.insertAfter(jQuery('#select-fan'));
                       jQuery('<input>', {type: 'submit', value: 'send'});
                  }
               });
           });
       });
});

   </script>
<?php else : ?>
   <p>Yup, there's nothing here, do u have beer ?</p>
<? php 
endif 
?>

我有一条来自第18行的错误消息

解析错误:语法错误,第18行的C:\\ inetpub \\ wwwroot \\ byrd \\ apps_code_promotion \\ verification \\ edit.php中出现意外的T_STRING

所以我也尝试了以下行,但我有同样的错误信息:

    $query = "SELECT td.id_resultat as id, email.fld_nom_email AS name FROM " . $table_db . " td INNER JOIN " . $table_db_email email ON td.fld_email_id = email.id_email WHERE td.fld_email_id = " . $_POST['ajaxId']"; //!!!!! la ligne 19


$query = "SELECT td.id_resultat as id, email.fld_nom_email AS name FROM " . $table_db . " td INNER JOIN " . $table_db_email email ON td.fld_email_id = email.id_email WHERE td.fld_email_id = . $_POST['ajaxId']; //!!!!! la ligne 19

为什么必须选择第二个选项? 因为我们有两个屏幕(文件)和一个下拉菜单:在第一个屏幕上,我显示有关用户的所有信息:

<?php

            $req=  " select tbl.id_resultat,schl.fld_school,tbl.fld_note,email.fld_nom_email,email.fld_adresse_email 

            FROM $table_db tbl 


            INNER JOIN $table_db_school schl
            ON tbl.fld_school_id = schl.fld_id_school

            INNER JOIN $table_db_email email
            ON tbl.fld_email_id = email.id_email";
            $rep =  mysql_query($req, $cnx) or die( mysql_error() ) ;



            while($row=mysql_fetch_row($rep)){
                $id_resultat=$row[0];
                $fld_school=$row[1];
                $fld_note=$row[2];
                $fld_nom_email=$row[3];
                $fld_adresse_email=$row[4];


                echo "<tr ><td>$id_resultat</td><td>
$fld_shool</td><td>
$fld_note</td><td>
$fld_nom_email</td><td>
$fld_adresse_email</td><td>
<a href=\"edit.php?id=$id_resultat\">to verify</a></td>
                </tr>"

?>

在第二个屏幕上(当用户单击链接“进行验证”时),他可以在下拉菜单中看到所选的选项,如果需要,他可以选择其他选项(通过电子邮件发送...)

那么,如何在我的选择中显示与其他选项一起选择的正确选项?

您可以将ajax与jQuery和一些js效果一起使用

编辑:

(your_page.php)
<?php

...

if (isset($_POST) && !empty($_POST))
{
    if (array_key_exists('ajaxId', $_POST))
    {
         if ((int)$_POST['ajaxId'] <= 0)
         {
             throw new Exception("go to hell");
         }

         $query = "SELECT td.id_resultat as id, email.fld_name_email AS name FROM " . $table_db . " td INNER JOIN " . $table_db_email email ON td.fld_email_id = email.id_email WHERE td.id_email = " . $_POST['ajaxId'];
         $result = mysql_query($query, $cnx);

         if (mysql_num_rows($result) > 0)
         {
              $data = array();
              while ($row=mysql_fetch_array($result))
              {
                   $data[$row["resultat"]] = $row["name"];
              }

              echo json_encode($data);
              exit();
         }
    }

    if (array_key_exists('select-big-fan', $_POST))
    {
        // you've found a big fan selected
    }
}

$query = "SELECT DISTINCT id_email AS id, fld_name_email AS name, fld_adresse_email AS email FROM " . $table_db_email . " ORDER BY name";
$result = mysql_query($query, $cnx);

?>
<?php if (mysql_num_rows($result) > 0) : ?>
   <form id="form-fan" method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
   <select name="select-fan" id="select-fan">
   <?php while ($row=mysql_fetch_array($result)) : ?>
      <option value="<?php echo $row["id"] ?>"><?php echo $row["name"] ?> - <?php echo $row["email"] ?></option>
   <?php endwhile ?>
   </select>
   </form>
   <script type="text/javascript">
       jQuery(document).ready(function(){
           jQuery("#select-fan").change(function(){
               var fanId = jQuery(this).val();
               jQuery.ajax(function(){
                  url: "<?php echo $_SERVER["PHP_SELF"] ?>",
                  data: {ajaxId: fanId},
                  success: function(data){
                       selectBigFan = jQuery('<select>', {name: 'select-bigfan', id: 'select-bigfan'});
                       jQuery.each(data, function(bigFanId, bigFanText){
                            optionBigFan = jQuery('<option>' {value: bigFanId, text: bigFanText});
                            optionBigFan.appendTo(selectBigFan);
                       });
                       selectBigFan.insertAfter(jQuery('#select-fan'));
                       jQuery('<input>', {type: 'submit', value: 'send'});
                  }
               });
           });
       });
});

   </script>
<?php else : ?>
   <p>Yup, there's nothing here, do u have beer ?</p>
<?php endif ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM