将javascript变量(数组)传递给php

时间:2018-05-03 19:45:25

标签: javascript php html

我有一个函数,用户输入存储在javascript中的变量中。

private string _X;
public object X
{
    get { return _X; }
    set
     {
        var a = ((ListBoxItem)value).Content as TextBlock;
        _X = a.Text;
       NotifyOfPropertyChange("X");
     }
}

当用户点击$('#btnsubmit').click(function() { var seat = [], item; $.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) { item = $(this).attr('title'); seat.push(item); }); var bookseats = seat; $.ajax({ type: 'POST', url: 'confirm.php', data: {'bookseats': bookseats}, }); });按钮时,我想将此变量(实际上是一个数组)发送到名为confirm.php的PHP文件。

#btnsubmit

在我的PHP文件中,我编写了代码来获取发送变量,如下所示。

<form method="POST" action="confirm.php"> 
<div align="center"><input type="Submit" id="btnsubmit" value="Submit" /></div>
</form>

执行时,PHP文件中没有任何反应(不打印$bookseats = ""; if(isset($_POST['bookseats'])) { $bookseats = $_POST["bookseats"]; print_r($bookseats); } )。此代码有问题吗?

1 个答案:

答案 0 :(得分:0)

您没有使用“成功”回调来获取PHP代码的输出。见success callback

$.ajax({
  type: 'POST',
  url: 'confirm.php',
  data: {'bookseats': bookseats},
  success: function(data) {
     console.log(data); // or alert(data);
  }
});

另外,我认为您应该停止传播按钮的默认行为,以防止浏览器将页面重定向到表单的操作URL:

$('#btnsubmit').click(function(ev) {
    ev.preventDefault();

正如@Malovich指出的那样,从jQuery 1.8开始,你也可以使用.then()

$.ajax({
  type: 'POST',
  url: 'confirm.php',
  data: {'bookseats': bookseats}
}).then(function(data) {
  console.log(data); // or alert(data);
}, function(){ 
  console.log("Error");
});