从JS到PHP的AJAX post方法 - 变量null

时间:2015-09-24 17:50:40

标签: javascript php jquery mysql ajax

我想通过AJAX从客户端调用服务器功能。

的index.php:

<?php 
?>
<html>
<head>
...
 <script src="http://code.jquery.com/jquery-latest.min.js"></script>
...
        console.log(position); // there IS a value! good!
        console.log(result);   // there IS a value! good!
  jQuery.ajax({
        type: "POST",
        url: 'crud.php',
        data: {functionname: 'insertLocation', arguments: [position, result]}, 
         success:function(data) {
        alert(data); 
         }
    });

crud.php:

<?php 
    $position = $_POST["position"]; //NOTHING!
    $result = $_POST["result"];     //NOTHING!
    include ("insert.php");
    switch($_POST["functionname"]){ 
        case 'insertLocation': 
            insertLocation($position,$result);
            break;      
    }   
 ?>

insert.php

<?php 
function insertLocation($position,$result){
...
}
?>

我将它传递给服务器端时失去了价值。我能够从JS记录值,但是当我登录php时,它是null(或空字符串?)。同时查询数据库也可以,但没有插入任何值。

我是网络编程的初学者,所以我提前为恶臭等道歉。

2 个答案:

答案 0 :(得分:2)

是的,$_POST 您的变量,但它们位于数组$_POST['arguments']中:

$_POST['arguments'][0] == position
$_POST['arguments'][1] == result

如果您希望能够$result = $_POST["result"],您必须将AJAX请求中的参数更改为

...
data: {functionname: 'insertLocation', position: position, result: result}, 
...

答案 1 :(得分:0)

data: {
    functionname: 'insertLocation', 
    position: position,
    result: result
}