我一直在寻找一些类似的问题,但似乎没有提供我正在寻找的具体答案。我有一些js变量,它们通过ajax传递给location.php
,然后将它们放在一个mysql表中。到目前为止,ajax调用看起来像这样:
function postLocation()
{
//var teamName = $('.team_name').val(); //Neither of the two work
var teamName = document.getElementById('team_name').value;
navigator.geolocation.getCurrentPosition(function(position)
{
pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
$.ajax(
{
url:'location.php',
type: 'POST',
datatype: 'json',
data: {
'posx':position.coords.latitude,
'posy': position.coords.longitude,
'team_name':$team_name
}, // post to location.php
success: function(data) {
alert(data);
},
error: function(data) {
alert("There may an error on uploading. Try again later"); //This is what displays on the screen every time
},
});
});
}

您还会注意到我'team_name' = $team_name
- >这基本上就是我想要做的,但我找不到使用现有ajax结构做到这一点的最佳方法。
编辑使用var teamName = document.getElementById('team_name').value;
从隐藏字段中获取值只会导致警报提供错误消息。在浏览器调试中,它告诉我它是500内部服务器错误。
编辑2 这是我在index.php页面上的html代码:
<div class="titleText"><h1><?php
echo $stagerow['stage'];
echo $id;
$team_name = $_SESSION['team_name'];
echo $team_name;
?></h1>
You can <a href="http://testphp-olivlaytchev.rhcloud.com/logout.php" style="color:white">logout here.</a> <br></div>
<div id="map-canvas"></div>
</head>
<input type ="hidden" id="team_name" name="team_name" value="<?php echo $team_name?>" >
<!-- Script -->
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
&#13;
这是我从浏览器POST http://testphp-olivlaytchev.rhcloud.com/location.php 500 (Internal Server Error)send
@ jquery.js:9664m.extend.ajax
@ jquery.js:9215(anonymous function)
@ (index):259
第259行是$.ajax(
答案 0 :(得分:3)
如果$ team_name是一个php变量,你可以将它回显到一个隐藏的输入并通过js获取它的val
<input type ="hidden" class="team_name" name="team_name" value="<?php echo $team_name?>" >
在ajax中传递数据时,该部分出错。 'team_name':$team_name
应为team_name:teamName`。
第一个arg作为键索引传递给HTTP_POST,第二个是值,你不需要$ sign。
var teamName = $('.team_name').val();
data: {
'posx':position.coords.latitude,
'posy': position.coords.longitude,
team_name: teamName
}, /
在您的php中,您可以像下面一样访问它。
echo $_POST['data'];