通过ajax将php和js变量发送到php页面和mysql表

时间:2015-08-25 13:45:48

标签: javascript php jquery ajax

我一直在寻找一些类似的问题,但似乎没有提供我正在寻找的具体答案。我有一些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;
&#13;
&#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(

1 个答案:

答案 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'];