Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否未发送Ajax POST请求?_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 是否未发送Ajax POST请求?

Javascript 是否未发送Ajax POST请求?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我只是从输入字段中获取一个值,并在按下按钮后用php显示它 它确实显示,但没有给出post变量的值,这是我尝试使用的html和脚本: <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <script> function chk() {

我只是从输入字段中获取一个值,并在按下按钮后用php显示它

它确实显示,但没有给出post变量的值,这是我尝试使用的html和脚本:

 <html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <script>
        function chk()
        {
            var name = document.getElementById('name').value;
            var dataString='name'+ name;
            $.ajax({
                type: 'POST',
                url: 'hi.php',
                data: dataString,
                cache: false,
                success: function(html){
                    $('#msg').html(html);
                }


            })
            return false;
        }
    </script>
</head>
<body>
    <form>
        <input type="text" id="name"><br>
        <input type="submit" value="submit" onclick="return chk()">
        <p id="msg"></p>
    </form>
</body>

函数chk()
{
var name=document.getElementById('name')。值;
var dataString='name'+name;
$.ajax({
键入:“POST”,
url:'hi.php',
数据:dataString,
cache:false,
成功:函数(html){
$('#msg').html(html);
}
})
返回false;
}

发送给php处理的页面如下所示:

 <?php 
     session_start();
     $name = $_POST['name'];
     echo "Response:".$name;
  ?>


我不是用Ajax正确地发送帖子吗?

我要做的第一件事是更改您的数据字符串:

var dataString = 'name' + name;


它应该是一个键值对,即正确发送post变量
您应该像dataString={'name':您的_值'otherName':'someting'那样编写/发送

dataString
中缺少
=
var-dataString='name='+name在控制台上获取任何值?打开控制台,查看是否实际调用了ajax页面。@Rory有一个
=
在那里。。。?而@Bikash控制台没有抛出任何错误,它只是空白,我托管它的页面是@Apparatus17,您需要在字符串本身的“name”后面添加一个
=
,是,这是推荐的方法,这样您就不必对它进行编码了。变量中的花括号的用途是什么?@Apparatus17这是一种对象表示法。我删除了我的注释,我意识到我输入错误。传递一个对象将修复编码问题,并且仍然将每个对象作为单独的post字段进行post。
var dataString = { 'name': name };