首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX和PHP的问题

AJAX和PHP的问题
EN

Stack Overflow用户
提问于 2014-02-25 05:24:46
回答 1查看 146关注 0票数 1

我有一个表单,它有一个输入PIN代码的字段。在这里,当输入PIN代码时,我使用ajax查找位置。当该字段不包含在表单中时,它就会工作。如果它包含在表单中,则AJAX无法工作。

HTML代码:

代码语言:javascript
复制
<form id="form" class="blocks" action="#" method="post" enctype="multipart/form-data">
    <div class="col_4 right">
        <label for="fullname">FirstName:</label>
        <input name="fname" type="text" class="text" />
    </div>
    <div class="col_4 right">
        <label for="pincode">Pin-Code:</label>
        <input name="pincode" type="text" class="text" id="pincode"  />
        <div id="section1"></div>
    </div>
</form>

JS代码:

代码语言:javascript
复制
<script>

        $(document).ready(function() {
             $('#pincode').keyup(function (e) {
                 if (e.keyCode == 13) {


                    //ajax request
                    $.ajax({
                         url: "pincode_check.php",
                        data: {
                            'pincode' : $('#pincode').val()
                        },
                        dataType: 'json',
                        success: function(data) { <!--console.log(data.success);-->
                            if(data.success){
                                //console.log(data.results[0].formatted_address.split(','))
                                var long_address=data.results[0].formatted_address.split(',');
                                console.log(long_address[0]);
                                $('#section1').append(long_address[0]);

                            }
                        }
                    });
                 }
                });

           });


        </script>

PHP代码(pincode_check.php):

代码语言:javascript
复制
<?php 
    $pincode=$_REQUEST['pincode'];
    $geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$pincode.'&sensor=false');
    $response= json_decode($geocode); //Store values in variable
    $lat = $response->results[0]->geometry->location->lat; //Returns Latitude
    $long = $response->results[0]->geometry->location->lng; // Returns Longitude
    $geocode=file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.$lat.','.$long.'&sensor=false');
    $data= json_decode($geocode);

    if($data==true)
    { // Check if address is available or not
        $data->results[0]->formatted_address ;   
        $data->success=true;
        echo json_encode($data);
    }
    else {
        $data->success= false;

        echo json_encode($data);
    }
?>
EN

回答 1

Stack Overflow用户

发布于 2014-02-25 06:00:39

$.ajax中的默认内容类型是application/x-www-form-urlencoded。但是,您已经将表单内容设置为multipart/form-data

multipart/form-data通常用于发送带有POST的文件。我认为您不需要这样做,所以根本不需要指定enctype,只需删除它并使用默认的表单编码,即application/x-www-form-urlencoded

(此外,$.ajax中的默认请求类型是GET,因此如果您确实想发送一个文件,则需要很好地更改该too..as,并将属性type="file"添加到您的表单中,我相信.)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22005342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档