簡體   English   中英

PHP:將選定的列表值傳遞到同一頁面中的另一個變量

[英]PHP: Passing selected list value to another variable in the same page

我有一個表單,有兩個列表框,並且基於第一個列表中的選定字段,我必須從數據庫中獲取數據以創建第二個列表框。

我正在嘗試使用post方法來實現這一點,但無法理解為什么第二個列表沒有填充數據...

PHP獲取第二個列表框的數據

if (isset($_POST['val']))
{
    $value = $_POST['val'];
    $smt3 = $db->prepare('select floor from test where name_id =?');
    $smt3->execute(array($value));
    $HF_id = $smt3->fetchAll();
}

HTML到列表框

<select class="Name" name="Profile_Name1" id="PC1"> 
            <option value="A">AA</option>
            <option value="B">BB</option>
            <option value="c">CC</option>
            <option value="d">DD</option>
</select>
        <label>Home Floor </label>
        <select name="Home_Floor" id="hfid">    <br />
            <option value="">Home_Floor</option>
                <?php foreach ($HF_id as $row){echo '<option value="' . $row['floor'] . '">' . $row ['floor'] . '</option>';}?>
</select>

jQuery的

$('#PC1').on('click', function() {
        $.post('user_info1.php', 'val=' + $(this).val(), function (response) {
     $.ajax({
        url: 'user_info1.php', //This is the current doc
        type: "POST",
        data: ({val: + $(this).val()}),
        success: function(data){
        }
    });        

您似乎希望post函數觸發由URL參數指定的頁面的加載。

嘗試一些類似的方法:

的HTML

<select class="Name" name="Profile_Name1" id="PC1"> 
    <option value="A">AA</option>
    <option value="B">BB</option>
    <option value="C">CC</option>
    <option value="D">DD</option>
</select>
<label>Home Floor </label>
<select name="Home_Floor" id="hfid">

</select>

loaddata.php

if (isset($_POST['val']))
{
    $value = $_POST['val'];
    $smt3 = $db->prepare('select floor from test where name_id =?');
    $smt3->execute(array($value));
    $HF_id = $smt3->fetchAll();
    $HF_array=array();
    foreach ($HF_id as $row)
    {
        $HF_array[]=$row['floor'];
    }
}
echo json_encode($HF_array);

javascript / jquery

jQuery('#PC1').on('click', function() {
    jQuery.ajax({
        url: 'loaddata.php', 
        type: "POST",
        data: ({val: + $(this).val()}),
        success: function(data){
            //data should come as JSON string in the form of ['item1','item2','item3'] use JSON.parse to convert to object:
            jQuery.each(JSON.parse(data), function(key, datavalue) {   
                jQuery('#hfid').append(
                    jQuery('<option>', { value : datavalue })
                    .text(datavalue)
                );//end of append
            });//end of each
        }//end of success function
    });//end of ajax datastruct and ajax call
});//end of on-click-function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM