使用POST方法将数据从AJAX传递到PHP而不使用<form>元素

时间:2016-06-02 09:48:32

标签: javascript php jquery ajax

我在没有使用表单的情况下将值从ajax传递给php时有一个“Undefined index”。

以下是我的代码:

function sendDatasToPhp() {
    var id = <? php echo json_encode($id); ?> ;
    var otherId = <? php echo json_encode($_SESSION['id']); ?> ;

      $.ajax({
        method: "POST",
        url: "send_data_to_php.php",
        data: "id=" + id + "&otherId=" + otherId,
        cache: false,
        success: function() {
          alert("Datas are being transfered");
        }
      })
    }
<div>
  <label class="send_datas" onclick="sendDatasToPhp();">Send datas to php</label>
</div>

假设$id已初始化且$_SESSION['id']已有值。问题是一旦转移到php文件,两个索引是未定义的。我该如何解决这些问题?

4 个答案:

答案 0 :(得分:0)

在你的html中添加隐藏的输入:

<input type="hidden" id="id" value="<?= $id; ?>" >
<input type="hidden" id="otherId" value="<?= $_SESSION['id']; ?>" >

然后你的脚本需要像:

function sendDatasToPhp() {
    var id = $('$id').val();
    var otherId = $('$otherId').val();

    var data = {
       id: id,
       otherId:, otherId
    };
    $.ajax({
        method: "POST",
        url: "send_data_to_php.php",
        data: data,
        cache: false,
        success: function() {
           alert("Datas are being transfered");
        }
    });
}

答案 1 :(得分:0)

我使用了GET方法而不是POST,我使其成功。

答案 2 :(得分:-1)

什么是json_encode?这不需要。
method更改为type$_SESSION['id']之后有一个右括号 success函数有一个输入参数success: function(data) { alert(data); }

答案 3 :(得分:-1)

$ .ajax函数中的数据属性应采用以下格式。

data: { id: id, otherId: otherID },

编辑:你能打印出你得到的确切错误吗?