在select上更改php功能

时间:2015-02-20 19:37:27

标签: javascript php jquery

我有一些JavaScript和PHP代码的问题。我想尝试一些没有用的ajax调用。

我想要发生什么: 当我更改所选的选项时,它需要使用选项中的值更新函数,因此php函数获取" id"来自所选的选项。这需要在页面上没有任何刷新的情况下发生。

所以我需要从所选项目中获取值到php函数。

代码:

<script>
$(document).ready( function ()
{
    $('#select').change(function()
    {
        var option = $(this).find('option:selected').val();
        $('#showoption').val(option); // for testing

        $.ajax ({
            url: "scripts/script.php",
            data: { id : option },
            success: {}
        });

    });
});
</script>
                <?php
                $meals = $food->mealsByCategory($id);
                foreach($meals as $meal){
                ?>
                    <div class="entry style-columns">
                        <div class="entry-title">
                            <a href="#"><?php echo $meal->DanName; ?></a>
                        </div>

                    </div>
                <?php
                }
                ?>

.change()现在可以正常工作,但它仍然没有传递给需要$ id的php函数。在scripts / script.php文件中,我有$id = $_GET['id'];

2 个答案:

答案 0 :(得分:1)

duuude,如果你使用jquery就像这样容易...

如果您的HTML看起来像这样:

<div class="form-label">Category</div>
<select name="category">
<option value="abcde">abcde-text</option>
<option value="fghij">fghij-text</option>
</select>
<div class="loaded"></div>

你的ajax必须看起来像这样简单......

$(document).ready(function() {  //DOM LOADED
    $( "select" ).change(function () { //GET CHANGE CALL
    var str = ""; // CREATE AN EMPTY STRING
    str += $(this).val(); // GET ACTUALL VALUE
    $( ".loaded" ).text( str ); // PRINT STRING WHEREVER YOU WANT
  })
  .change();
});

或加载文件而不是打印文本...

$.ajax({ url: '/ajax.php', // WHICH FILE YOU WANN CALL IN MY EX THIS WOULD BE str+'.php',
         data: formData, //
         type: 'post', // GET or POST 
         complete: function(output) {
               $('/*FORM RESULT*/').html(output.responseText);
         }
});

希望这可以帮助你...

答案 1 :(得分:0)

我这样做:

$.get('url-with-get').done(function(data) { $("selector").after(data); });

另外,你应该把它放在像这样的东西

$('#your-list-id').on('change', function() {});

你可以随便改变,数据是你从ajax调用得到的,所以在你的php文件中它应该有类似的东西

if(isset($_GET['var-you-are-passing-in-url-with-get'])){
echo 'bla bla bla';
}

希望这有助于:)