Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
将自动填充文本字段的内容发送到php文件,以便使用JQuery进行处理,并返回结果_Php_Jquery_Mysql - Fatal编程技术网

将自动填充文本字段的内容发送到php文件,以便使用JQuery进行处理,并返回结果

将自动填充文本字段的内容发送到php文件,以便使用JQuery进行处理,并返回结果,php,jquery,mysql,Php,Jquery,Mysql,我有一个地图,点击时,纬度和逻辑度填充表单中的一些隐藏文本字段。我想做的是对这些坐标进行一些计算(找到最近的城镇),用城镇名称填充表单中的“Townland”字段,然后单击submit提交所有内容 我一直试图通过使用ajax将lat和lng字段的内容发送到进行处理的php文件来实现这一点,但我无法让它工作。当我手动输入纬度和逻辑纬度,而不是试图从另一个文件中提取纬度和逻辑纬度时,sql查询就会起作用 任何帮助都会很好,谢谢 我的php表单页面中的javascript调用执行计算的php文件 &l

我有一个地图,点击时,纬度和逻辑度填充表单中的一些隐藏文本字段。我想做的是对这些坐标进行一些计算(找到最近的城镇),用城镇名称填充表单中的“Townland”字段,然后单击submit提交所有内容

我一直试图通过使用ajax将lat和lng字段的内容发送到进行处理的php文件来实现这一点,但我无法让它工作。当我手动输入纬度和逻辑纬度,而不是试图从另一个文件中提取纬度和逻辑纬度时,sql查询就会起作用

任何帮助都会很好,谢谢

我的php表单页面中的javascript调用执行计算的php文件

<script type="text/javascript"> 


    $('lat').change(function(){
       var lat=document.getElementById('lat').value;  
        var lng=document.getElementById('lng').value; 
         $.ajax
            ({ 
                url: '../Controller/PRACTICEtown.php',
                data: { var : lat, var : lng},
                type: 'post',
                success: function(result)
                {
                    $('#Townland').value(result);
                }
            });
    });

</script>

$('lat').change(函数(){
var lat=document.getElementById('lat').value;
var lng=document.getElementById('lng')。值;
$.ajax
({ 
url:“../Controller/PRACTICEtown.php”,
数据:{var:lat,var:lng},
键入:“post”,
成功:功能(结果)
{
$(#Townland')。价值(结果);
}
});
});
外部php文件,我想从上面获取lat和lng并对其执行计算,返回城镇名称

<?php
 function getTown(){  

 $conn    = Connect();

     /**
 * Use the Haversine Formula to display the 100 closest matches to $origLat, $origLon
 * Only search the MySQL table $tableName for matches within a 10 mile ($dist) radius.
 */


 $origLat = $_POST['lat'];
$origLon = $_POST['lng'];

$dist = 50; // This is the maximum distance (in miles) away from $origLat, $origLon in which to search

$query = "SELECT Townland, lat, lng, 3956 * 2 * 
          ASIN(SQRT( POWER(SIN(($origLat - lat)*pi()/180/2),2)
          +COS($origLat*pi()/180 )*COS(lat*pi()/180)
          *POWER(SIN(($origLon-lng)*pi()/180/2),2))) 
          as distance FROM townland WHERE 
          lng between ($origLon-$dist/cos(radians($origLat))*69) 
          and ($origLon+$dist/cos(radians($origLat))*69) 
          and lat between ($origLat-($dist/69)) 
          and ($origLat+($dist/69)) 
          having distance < $dist ORDER BY distance limit 1"; 

$result = mysqli_query($conn, $query) or die(mysql_error());

 if($row = mysqli_fetch_assoc($result)) {
    echo $row['Townland'] ;
}

}
getTown();
?>


$('lat').change(函数(){
var lat=document.getElementById('lat').value;
var lng=document.getElementById('lng')。值;
$.ajax
({ 
url:“../Controller/PRACTICEtown.php”,
数据:{lat:lat,lng:lng},
键入:“post”,
成功:功能(结果)
{
$(#Townland')。价值(结果);
}
});
});

注意ajax数据字段


$('lat').change(函数(){
var lat=document.getElementById('lat').value;
var lng=document.getElementById('lng')。值;
$.ajax
({ 
url:“../Controller/PRACTICEtown.php”,
数据:{lat:lat,lng:lng},
键入:“post”,
成功:功能(结果)
{
$(#Townland')。价值(结果);
}
});
});

注意ajax数据字段,而不是

data: { var : lat, var : lng},
使用

编辑:在您对自己问题的评论中,您说您的townland输入的id是“townland”,但在ajax成功函数中,您希望更改“townland”(大写!)

的值,而不是

data: { var : lat, var : lng},
使用


编辑:在您对自己问题的评论中,您说您的townland输入的id是“townland”,但在ajax成功函数中,您希望更改两次发送的
var
数据中“townland”(大写!)

的值。使用其他名称,每个值使用不同的名称。与您在代码中使用的$_POST匹配的名称结果应显示在主窗体的“Townland”文本字段中。我目前的设置如下:在数据中,您将发送两次
var
。使用其他名称,每个值使用不同的名称。与您在代码中使用的$_POST匹配的名称结果应显示在主窗体的“Townland”文本字段中。我目前的做法是这样的:您是否尝试过在ajax成功函数中警告结果,以查看ajax是否至少返回所需的结果?正如我在20分钟前的评论中所看到的,您的townland输入的id为“townland”,但在ajax成功函数中,您希望更改id为“townland”的输入值(大写)像这样的警报?警报(结果);我把它放进去了,但什么也没发生。我把它改成小写,但什么也没发生。我想我得试着找到一种不同的方法来做。如果警报(结果);从不触发它表示ajax请求或php脚本出现问题。请尝试向ajax中添加错误函数并警告抛出的错误。错误:函数(jqXHR,textStatus,errorhorn){alert(errorhorn);}您是否尝试在ajax成功函数中警告结果,以查看ajax是否至少返回所需的结果?正如我在20分钟前的评论中所看到的,您的townland输入的id为“townland”,但在ajax成功函数中,您希望更改id为“townland”的输入值(大写)类似于此的警告?警报(结果);我把它放进去了,但什么也没发生。我也把它改成小写,但什么也没发生。我想我只需要尝试找到一种不同的方法来做。如果警报(结果);从未触发,这意味着ajax请求或php脚本有问题。尝试向ajax添加一个错误函数,并警告抛出的错误。错误:函数(jqXHR,textStatus,errorhorn){alert(errorhorn);}
data: { lat : lat, lng : lng},