Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在将带有jquery的select选项发送到php文件。。。?_Jquery - Fatal编程技术网

正在将带有jquery的select选项发送到php文件。。。?

正在将带有jquery的select选项发送到php文件。。。?,jquery,Jquery,我花了2天的时间研究如何使用jquery将变量发送到php。我在stackoverflow上搜索了100多篇文章,我尝试了多个例子。但我只是完成了。所以我真的希望这里的人能帮我找出我做错了什么 <?php print_r(json_decode($_POST['country'])); ?> <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/a

我花了2天的时间研究如何使用jquery将变量发送到php。我在stackoverflow上搜索了100多篇文章,我尝试了多个例子。但我只是完成了。所以我真的希望这里的人能帮我找出我做错了什么

<?php
print_r(json_decode($_POST['country']));
?>
<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    <script type="text/javascript">

        $(function() {
            $('#country').change(function() {

                var country = $('#country').val();

                $.ajax({
                    type: 'POST',
                    data: country,
                    dataType: 'json',
                    url: 'timezone/timezone.php',
                })

                alert("Country: " + country);

            });
        });

    </script>

</head>

<body>

    <form method = "post" name="form1">
        <select name="country" class="country" id="country">
            <option value="NL">Nederland</option>
            <option value="BE">Belgie</option>
        </select>
    </form>

</body>

</html>

数据需要是查询字符串,或者是带有键和值的对象

作为对象

           $.ajax({
                type: 'POST',
                data: { 'country': country }
                dataType: 'json',
                url: 'timezone/timezone.php', 
                success: function( data ) {
                   var element = data.wrap('<div />');  // wrap the response in a div 
                   $('body').append( element );   // append it to the body
                }
            }); 
如果有疑问,请始终转到jquery。这里是ajax文档的摘录


data选项可以包含形式为key1=value1&key2=value2的查询字符串,也可以包含形式为{key1:'value1',key2:'value2'}的映射。如果使用后一种形式,则在发送数据之前,使用jQuery.param将数据转换为查询字符串。通过将processData设置为false,可以绕过此处理。如果希望将XML对象发送到服务器,则处理可能是不需要的;在本例中,将contentType选项从application/x-www-form-urlencoded更改为更合适的MIME类型。

我尝试了这两种类型,但仍然有一些不正确的地方。这可能与php有关吗?我刚刚注意到您正在对json进行解码,您不必这样做,您只需回显$_POST['country',],然后尝试一下,然后查看结果。那么您正在将country发布到同一个脚本中?在firebug中,转到您的网络选项卡,查看来自服务器的请求和响应,它是200行吗?是的,它说是200kb。这是什么意思?jquery是否已成功发送字符串?但不知怎的php失败了?你知道吗?我认为这是可行的,您的页面将不会刷新,因为这是一个AJAX请求,因此您将不会看到echo$_POST['country'];我将编辑答案,将来自服务器的响应注入到div中,这样您就可以看到服务器正在发送回什么。让我知道会发生什么。
            $.ajax({
                type: 'POST',
                data: 'country='+country, 
                dataType: 'json',
                url: 'timezone/timezone.php'
            });