Php 通过在选择框中切换选项,在不同的表列中显示不同的数据
我的问题如下: 我有一个ajax函数,它根据selectselected的选项,将数据库中的一条记录关联起来,并填充另一个输入,即p标记 我有两个必须填充的td标签。必须显示不同的数据,因此我希望,根据第一个选择上的输入,在第二个td上有输入y,在第三个输入z,依此类推。。。怎么可能呢?如果我尝试将数据附加到多个标记,那么相同的数据将显示在所有td列中 这里我附上我的代码 Main.phpPhp 通过在选择框中切换选项,在不同的表列中显示不同的数据,php,html,mysql,jquery,Php,Html,Mysql,Jquery,我的问题如下: 我有一个ajax函数,它根据selectselected的选项,将数据库中的一条记录关联起来,并填充另一个输入,即p标记 我有两个必须填充的td标签。必须显示不同的数据,因此我希望,根据第一个选择上的输入,在第二个td上有输入y,在第三个输入z,依此类推。。。怎么可能呢?如果我尝试将数据附加到多个标记,那么相同的数据将显示在所有td列中 这里我附上我的代码 Main.php $(document).ready(function() { $('#L_NAME0').ch
$(document).ready(function() {
$('#L_NAME0').change(function() {
var L_NAME0 = $("#L_NAME0").val();
$.ajax({
type: "POST",
url: "elaborazione_dati.php",
data: "L_NAME0=" + L_NAME0,
dataType: "html",
success: function(msg) {
$("#L_AMT0").html(msg);
$("#L_DESSERV").html(msg);
},
error: function() {
alert("Call failed");
}
});
});
});
Form.php
<label for="L_DESSERV">Descrizione del servizio</label>
<p class="L_DESSERV" id="L_DESSERV"></p>
</td
<td class="h4">
<label for="L_AMT0">Costo del servizio</label>
<p class="L_AMT0" id="L_AMT0"></p>
</td>
elaborazione_dati.php
$tipologia_selezionata = $_POST['L_NAME0'];
$sql = "SELECT * FROM acquisti WHERE durata = '$tipologia_selezionata' ";
$q = $db->prepare($sql);
$q->execute();
$q->setFetchMode(PDO::FETCH_ASSOC);
while($caratt = $q->fetch()) {
echo '<input readonly="readonly" type="hidden" name="L_NAME0" value="'.$caratt['durata'].'"/>';
echo '<input readonly="readonly" type="hidden" name="L_AMT0" value="'.$caratt['prezzi'].'"/>';
echo $caratt['prezzi']; ?> € <?php
}
有什么建议吗
非常感谢 您需要分割结果,最简单的方法是从PHP返回JSON,然后在js代码中处理它以生成字段和文本。 因此,在PHP中,类似于:
while($caratt = $q->fetch()) {
$result->durata = $caratt[duratta];
$result->prezzi = $caratt[prezzi];
}
echo json_encode($result);
$('#L_NAME0').change(function() {
var L_NAME0 = $("#L_NAME0").val();
$.ajax({
type: "POST",
url: "elaborazione_dati.php",
data: "L_NAME0=" + L_NAME0,
dataType: "json",
success: function(data) {
$("#L_AMT0").html("<input type='hidden' name='L_NAME0' value='"+data.duratta+"'/>"+data.duratta);
$("#L_DESSERV").html("<input type='hidden' name='L_DESSERV' value='"+data.prezzi+"'/>"+data.prezzi+"€");
},
error: function() {
alert("Call failed");
}
});
然后在js中,类似于:
while($caratt = $q->fetch()) {
$result->durata = $caratt[duratta];
$result->prezzi = $caratt[prezzi];
}
echo json_encode($result);
$('#L_NAME0').change(function() {
var L_NAME0 = $("#L_NAME0").val();
$.ajax({
type: "POST",
url: "elaborazione_dati.php",
data: "L_NAME0=" + L_NAME0,
dataType: "json",
success: function(data) {
$("#L_AMT0").html("<input type='hidden' name='L_NAME0' value='"+data.duratta+"'/>"+data.duratta);
$("#L_DESSERV").html("<input type='hidden' name='L_DESSERV' value='"+data.prezzi+"'/>"+data.prezzi+"€");
},
error: function() {
alert("Call failed");
}
});
但是,如果您将另一个名为L_NAME0的输入(select控件的id)放入,这似乎令人困惑,但是,嘿,这是您的代码…: SQL查询返回多个结果还是只返回一个?给出一个例子,说明如果一切都按预期工作,表单应该是什么样子。SQL查询根据所选的第一个选项只返回一个。表格是这样写的:标题1 NVar 1Var NStill不清楚。从PHP中,您可以回显2个不可见字段和一个价格。因此,在td中,两个中唯一可见的是价格。我举个例子的意思是,表单在调用前的外观以及调用后的外观示例。是的,奖励将是在一个td中可见的var,描述将在另一个td中显示,等等。。。