将mysql下拉列表中的值传递给另一个而不在db php上发布

yzuktlbb  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(345)

我有三张table:联系人、公司和联系人公司。我想,当一个用户从下拉列表中选择一个特定的公司,在下面的下拉列表中,他只能看到在该公司以前选择的联系人。我尝试使用全局函数,但成功率非常有限。如果可能的话,我想避免发布第一个查询结果的结果。

  1. <p>Company <span>*</span></p>
  2. <span class="icon-case"><i class="fa fa-comments-o"></i></span>
  3. <select name="company">';
  4. echo '<option value=""></option>;'
  5. <?php
  6. $query="SELECT `name` FROM `companies` ORDER BY `name`ASC";
  7. $result=mysqli_query($connection,$query) or die ("Query to get data from sector table failed: ".mysql_error());
  8. global $company_id;
  9. while ($row=mysqli_fetch_array($result)) {
  10. $company_id=$row["company_id"];
  11. $company_name=$row["name"];
  12. echo "<option value=\"$company_id\">
  13. $company_name
  14. </option>";
  15. }
  16. ?>
  17. </select>
  18. </div>
  19. <p>Contact in Company <span>*</span></p>
  20. <span class="icon-case"><i class="fa fa-comments-o"></i></span>
  21. <select name="contact">';
  22. echo '<option value=""></option>;'
  23. <?php
  24. global $company_id;
  25. $query="SELECT * FROM `contact_company` WHERE
  26. `company_id=$company_id;";
  27. $result=mysqli_query($connection,$query) or die ("Query to get data from sector table failed: ".mysql_error());
  28. while ($row=mysqli_fetch_array($result)) {
  29. $company_id=$row["company_id"];
  30. $contact_id=$row["contact_id"];
  31. echo "<option value=\"$company_id\">
  32. $contact_id
  33. </option>";
  34. }
  35. ?>
  36. </select>
  37. </div>

有什么建议吗?向托马索问好

watbbzwu

watbbzwu1#

我猜你错过了什么。这是片段

  1. <?php
  2. $connection = mysqli_connect(DB_HOST, DB_USER, DB_PASS,DATABASE); if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error();
  3. echo '<p>Company <span>*</span></p>
  4. <span class="icon-case"><i class="fa fa-comments-o"></i></span>
  5. <select name="company" id="company">';
  6. echo '<option value="">Please select</option>';
  7. $query="SELECT name,company_id FROM `companies` ORDER BY `name`ASC";
  8. $result=mysqli_query($connection,$query) or die ("Query to get data from sector table failed: ".mysql_error());
  9. while ($row=mysqli_fetch_array($result)) {
  10. $company_id=$row["company_id"];
  11. $company_name=$row["name"];
  12. echo "<option value=".$company_id.">".$company_name." </option>";
  13. }
  14. echo '</select>
  15. </div>
  16. <p>Contact in Company <span>*</span></p>
  17. <span class="icon-case"><i class="fa fa-comments-o"></i></span>
  18. <select name="contact" id="contact">';
  19. <option value=""> Please select</option>
  20. </select>';
  21. ?>
  22. <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
  23. <script>
  24. $(document).ready(function(){
  25. $('#company').on('change',function(){
  26. var companyid = $(this).val();
  27. alert('hello');
  28. if(companyid){
  29. $.ajax({
  30. type:'POST',
  31. url:'ajaxData.php',
  32. data:'id='+companyid,
  33. success:function(html){
  34. $('#contact').append(html);
  35. }
  36. });
  37. }
  38. });
  39. });
  40. </script>

ajaxdata.php文件

  1. <?php /* Connect to MySQL and select the database. */
  2. $connection = mysqli_connect('localhost', 'root', '','demo'); if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error();
  3. ?>
  4. <?php
  5. $company_id=$_POST['id'];
  6. echo $query="SELECT * FROM `contact` WHERE company_id='".$company_id."'";
  7. $result=mysqli_query($connection,$query) or die ("Query to get data from sector table failed: ".mysqli_connect_error());
  8. while ($row=mysqli_fetch_array($result)) {
  9. $company_id=$row["company_id"];
  10. $contact_id=$row["contact_id"];
  11. echo "<option value=\"$company_id\"> $contact_id</option>";
  12. }
展开查看全部
ffvjumwh

ffvjumwh2#

我建议使用ajax来获得所需的联系人。下面是一些有用的片段

  1. $(document).ready(function(){
  2. $('#company').on('change',function(){
  3. var companyid = $(this).val();
  4. if(companyid){
  5. $.ajax({
  6. type:'POST',
  7. url:'ajaxData.php',
  8. data:'id='+companyid,
  9. success:function(html){
  10. $('#conatct').html(html);
  11. }
  12. });
  13. }
  14. });
  15. });

当公司发生变化时,我们可以调用ajax。下面是ajax的参数
类型:应该是post或get
url:php文件将根据seelct公司从数据中获取
数据:选定公司
sucess:在何处显示获取的数据。
因为公司是以post格式在php文件$company\u id=$\u post['id']中提供的;基于此,我们可以从数据库中提取数据。

展开查看全部

相关问题