通过切换选择中的选项,在不同的表列中显示不同的数据

时间:2013-11-19 10:57:16

标签: php html mysql jquery

我的问题如下:

我有一个ajax函数,根据所选的(选择的)选项,将数据库中的记录关联起来并填充另一个输入,即p标记。

我有两个必须填充的td标签。必须显示不同的数据,所以我想要的是,根据第一个选择的输入,在第二个td上将有输入y,在第三个输入z中依此类推......怎么可能?如果我尝试将数据附加到多个标记,则所有td列中都会显示相同的数据。

我在这里附上我的代码

Main.php

$(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']; ?> &euro; <?php
} 

有什么建议吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您需要拆分结果,最简单的方法是从PHP返回JSON,然后在您的js代码上处理它以生成字段和文本。 所以在PHP中就像:

while($caratt = $q->fetch()) {
    $result->durata = $caratt[duratta];
    $result->prezzi = $caratt[prezzi];
}
echo json_encode($result); 

然后在你的js中:

   $('#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+"&euro;"); 
        },
        error: function() {
            alert("Call failed");
        }
    });

然而,您放置另一个名为L_NAME0的输入 - 您的选择控件的ID,这似乎令人困惑,但是嘿,这是您的代码......:)