TABLE wp_thesis            TABLE wp_courses

Thesis_ID Thesis_Title     Course_ID  Thesis_ID  Course
1         thesis1          1          1          course1
2         thesis2          2          1          course2
                           3          2          course1
                           4          2          course2
                           5          2          course3

我有一个select,它调用showText函数onchange。
$query = "SELECT * FROM wp_thesis";
$result = mysqli_query($conn,$query);?>

<select name="ThesisTitle" onchange="showText(x,y)" required="">
  <option disabled='disabled' selected='selected' value=''></option>"; <?php
  foreach ($result as $row)
  {
      echo "<option value= {$row[Thesis_ID]}>{$row[Thesis_Title]}</option>";
  }
echo"</select><br />";?>

第一个想法是发送select的值(onchange=“showText(this.value)”),然后在showText函数中有一个sql查询,以便获得我想要的两个值。我听说不能在函数内部执行sql查询,因为Javascript是客户端的,所以我想在php上执行sql查询,然后将值发送到showText函数。我想要的问题是:
$query = "SELECT Course FROM wp_courses WHERE Thesis_ID={$row[Thesis_ID]} ";
$courses = mysqli_query($conn,$query);
$coursesNo = mysqli_num_rows($courses);

我要发送的值是$courses和$coursesNo。是否可以在同一个php文件中获取select的值,而不使用按钮或类似的东西?

最佳答案

在渲染前获取X和Y坐标选项并将其作为数据属性提供。

    <select name="ThesisTitle" onchange="showText(this)" required="">
      <option disabled='disabled' selected='selected' value=''></option>"; <?php
      foreach ($result as $row)
      {
          echo "<option data-x={$row[Thesis_X]} data-y={$row[Thesis_Y]} value= {$row[Thesis_ID]}>{$row[Thesis_Title]}</option>";
      }
    echo"</select><br />";?>

在那之后,转到showText(this)函数,将this作为参数,并使用
  function showText(obj){
     var x_val = $(obj).attr("data-x");
     var y_val = $(obj).attr("data-y");
  }

希望这对你有帮助。

10-05 20:43