所以我目前遇到的问题是我正在尝试使用 ajax 调用将信息发送到 php 页面以在 SQL 数据库中创建条目。
如果我在标签中有代码。(所以它不在函数内,它只是在页面加载时调用)。
这是导入的内容:
<script type="text/javascript" language="javascript" src="js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>
<link rel="stylesheet" href="jquery.mobile-1.3.0.css" />
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=visualization"></script>
<script type="text/javascript">
var pos = "(44.18974214877667,-79.63154019848633)";
var place = "test";
var check = "on";
var priv = "yes";
$.ajax({ type:"POST",
url:"backMap/locationCreation.php",
data: { name: place, loc: pos, check: check, privacy: priv },
success: function(data) { $("#awesomet").html(data);},
error: function(xhr, textStatus, thrownError, data) {
alert("Error: " + thrownError); }
});
</script>
当在页面加载时调用它时,它将正确运行并将信息输入数据库。问题是我希望在调用按钮时发生这种情况,以便用户可以输入信息。
<button onClick="sendCreationRequest()" />Submit</button>
<script type="text/javascript">
function sendCreationRequest() {
var place = $("#place").val();
var pos = targetted.getPosition();
var check = $("#checker").val();
var priv = $("#privOp").val();
$("#awesomet").html("GOT HERE.");
$.ajax({ type:"POST",
url:"backMap/locationCreation.php",
data: { name: place, loc: pos, check: check, privacy: priv },
success: function(data) { $("#awesomet").html(data);},
error: function(xhr, textStatus, thrownError, data) {
alert("Error: " + thrownError); }
});
}
</script>
所以 Awesomet div 将更改为“GOT HERE”。当按下应该激活该功能的按钮时,它正在进入该功能。我也有一个关于所有变量的警报,它们是正确的。
单击按钮时,控制台中会出现以下内容:
CordovaLog - https://maps.gstatic.com/cat_js/intl/en_ca/mapfiles/api-3/13/4/%7Bmain,visualization%7D.js: Line 12 : Uncaught TypeError: Cannot call method 'lat' of undefined
Web Console - Uncaught TypeError: Cannot call method 'lat' of undefined:12.
我到处寻找我称之为这个的地方,但我找不到它。
我不明白为什么它可以通过页面加载调用起作用,以及为什么它不能通过函数调用起作用。
编辑: Targetted 是一个谷歌地图标记。当调用 get position 时。它返回就好了。我已经发出警报(pos);在代码中,因此当按下按钮时,警报确实会提供正确的字符串。
编辑:好的,所以我改变了:
var pos = targetted.getPosition();
到...
var pos = "(44.18974214877667,-79.63154019848633)";
函数调用现在完美运行!但是我不明白为什么。他们在变量中得到相同的数字。有任何想法吗?