jQuery AJAX和PHP没有获取数据值

时间:2017-02-02 09:59:30

标签: javascript php jquery ajax

我正在尝试将使用jQuery AJAX传递的数据变量的值提取到php页面。怎么解决?

以下是HTML页面代码:

<input id="name" placeholder="Enter your name." />
<button id="submit">Submit</button>
<div id="message"></div>

在按钮上单击此jQuery AJAX调用php页面:

 $.ajax({
     type: "POST",
     url: "jquery-ajax-hello.php",
     contentType: "application/json; charset=utf-8",
     data: '{"name":"' + $("#name").val() + '"}',
     success: function (result, status, xhr) {
         $("#message").html(result);
     },
     error: function (xhr, status, error) {
         $("#message").html("Result: " + status + " " + error + " " + xhr.status + " " + xhr.statusText)
     }
 });

PHP页面代码是:

<?php
$name = $_POST['name'];
echo "Hello ".$name.", How are you ?"; 
?>

在php页面中,我无法获取数据变量'name'值?

请帮帮忙?

4 个答案:

答案 0 :(得分:2)

你的data应该是一个对象,你传递的是一个字符串,所以它应该是

data: {
    name: $("#name").val()
},

答案 1 :(得分:1)

JQuery Ajax

  

表格数据

<input type="text" id="name" placeholder="Enter your name." />
<button id="submit">Submit</button>
<div id="message"></div>
  

Jquery部分

$(function() {
$("#submit").click(function() {
  var name = $('#name').val();
 $.ajax({
  url : 'success.php',
  method: 'POST',
  data : {name:name},
  success : function(res) {
     $('#message').append(res);
   }
});
});
});
  

success.php

<?php 
 $name =  $_POST['name'];
 echo "Hello Mr ".$name ;
?>

答案 2 :(得分:0)

数据属性更改为

 data: {name: $("#name").val() }

它会正常工作

答案 3 :(得分:0)

将数据更改为:

data: { name: $("#name").val() }

因为data必须是包含key : value对的对象

在你的情况下:

data: '{"name":"' + $("#name").val() + '"}'

{}包含单引号。删除它们。