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");
}
希望这对你有帮助。