0

这是 index.php 的代码:

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
    <script type="text/javascript">
        jQuery(function () {    
            jQuery('#city').change(function() {
                var city = jQuery('#city').val();           
                var data = "city=" + city; 
                jQuery.ajax({
                    url: 'page.php', 
                    type: 'GET',
                    data: data,
                    success: function(data){ jQuery("#my_div").html(data); }
                });             
            });
        });
    </script>
</head>
<body>
    <select id='city'>  
        <option value='Paris'>Paris</option>
        <option value='London'>London</option>
        <option value='Rome'>Rome</option>
    </select>   
    <div id='my_div'>
        <?php require_once('page.php'); ?>      
    </div>
</body>
<html>

和page.php:

<?php if (isset($_GET['city'])) echo 'you selected '.$_GET['city']; ?>

选定的城市应显示“您已选择”,然后显示城市名称。但它什么也没做..

4

2 回答 2

2

您没有发送数据...这里的数据未定义...将您的代码更改var city = "city=" + city;var data= "city=" + city;..您将收到您的响应作为数据..所以替换

jQuery("#my_div").html(html);

jQuery("#my_div").html(data);

尝试这个

 jQuery('#city').change(function() {
            var city = jQuery('#city').val();           
            var data= "city=" + city; //<--here
            jQuery.ajax({
                url: 'page.php', 
                type: 'GET',
                data: data,
                success: function(data){ jQuery("#my_div").html(data); } //<--here
            });             
        });
于 2013-03-14T14:18:18.187 回答
1

你可以使用速记......但这里真正的问题是两个变量是“未定义的”。没有定义 html 变量,也没有定义前面提到的 data 变量。

试一试

   $('#city').change(function() {
        var data= "city=" + $('#city').val();
        $.ajax({
            url: 'page.php', 
            type: 'GET',
            data: data,
            success: function(html){ 
                $("#my_div").html(html); 
            }
        });             
    });
于 2013-03-14T14:24:04.367 回答