【发布时间】:2021-08-09 11:05:55
【问题描述】:
我试图从下拉菜单中获取一些数据,我想在它更改为在第二个下拉菜单中进行查询时使用该值,但直到现在,我无法使用 javascript 将值发送到我的 php。
我正在使用此代码:
<script type="text/javascript" language="javaScript">
function flow() {
var x = document.getElementById("txt_maq").value;
document.getElementById("demo").innerHTML = x;
var maq = document.getElementById('txt_maq').value;
var cat = document.getElementById('txt_catmaterial').value;
if (maq != "")
{
document.getElementById('txt_catmaterial').disabled=false;
}
if (cat == "")
{
document.getElementById('txt_material').disabled=true;
}
if (cat != "")
{
document.getElementById('txt_material').disabled=false;
}
}
</script>
<div class="col-2">
<div class="input-group">
<label class="label">Maq. Destino</label>
<div class="rs-select2 js-select-simple select--no-search">
<select id="txt_maq" name="txt_maq" onchange="flow()">
<option value="">Selecione</option>
<option value="E02">E02</option>
<option value="E03">E03</option>
<option value="E04">E04</option>
<option value="E05">E05</option>
<option value="E06">E06</option>
<option value="E07">E07</option>
<option value="E08">E08</option>
<option value="E04/E07">E04/E07</option>
<option value="E04/E08">E04/E08</option>
<option value="E03/E04">E03/E04</option>
<option value="E03/E07">E03/E07</option>
<option value="E04/E07/E08">E04/E07/E08</option>
<option value="E03/E07/E08">E03/E07/E08</option>
<option value="E07/E08">E07/E08</option>
<option value="E09">E09</option>
</select>
<div class="select-dropdown"></div>
</div>
</div>
</div>
</div>
<div class="row row-space">
<div class="col-2">
<div class="input-group">
<label class="label">Cat. Material</label>
<div class="rs-select2 js-select-simple select--no-search">
<select id="txt_catmaterial" disabled="true" name="txt_catmaterial" onchange="flow()">
<option value=""></option>
<?php
$maquina = $_POST['txt_maquina'];
$type_te = "";
if ($maquina == "E09"){
$type_te= "ET";
} else {
$type_te= "EP";
}
echo $type_te;
$selecione = "";
$consulta = "SELECT Cat_Material FROM cat_mat where TE = '".$type_te."' "; //código SQL
$resultado = mysqli_query($ligacao,$consulta);
while ($listar = mysqli_fetch_array($resultado)){
$catmat = $listar['Cat_Material'];
echo "<option value=".$catmat.">$catmat</option>";
}
?>
</select>
<div class="select-dropdown"></div>
</div>
</div>
</div>
</div>
如果 txt_maq 是 E09,我要做的只是做一个 If,这样我就可以在 txt_catmaterial 中进行查询,但该值不是来自 javascript。
【问题讨论】:
-
您使用了错误的 POST 索引
$maquina = $_POST['txt_maquina'];在您的表单中,选择元素的名称是txt_maq在您的 php 代码中,它应该是$maquina = $_POST['txt_maq']; -
从下拉列表中选择任何值!= 发布。因此,您需要使用 javascript/jquery 捕获此事件,然后使用 ajax 向您的数据库发出请求,最后使用响应中的值填充您的第二个选择
-
另外,就像 Angel 和 peter 提到的那样,您将需要使用 ajax/fetch 来使其工作,或者您将需要表单来实际发送数据。 PHP 是一种服务器端语言,它不知道客户端(即 JS)发生了什么。此链接可能会帮助您入门,可能重复:stackoverflow.com/questions/1917576/…
标签: javascript php sql onchange