Javascript提示在PHP echo上显示

时间:2015-03-27 05:03:17

标签: javascript php jquery html ajax

之前我问过这个问题,我试图运行它,但是我在显示从javascript提示输入到php时出现问题,我得到了#34; UNDEFINED INDEX&# 34;在PHP部分。我想我几乎完成了我在互联网上看到的一切,但仍然没有运气。这是我的javascript和ajax(脚本src =" jquery.js"包括在内):

<script type="text/javascript">
var name = prompt('Please enter your name');
$.ajax({
    url: 'index.php',
    type: 'POST',
    dataType: 'text',
    data: name,
    success: function(data){ 
      console.log(data);
    }       
}); 
</script>

每当我尝试提醒&#34;数据&#34;时,它只显示我为此文件提供的一堆HTML代码。这是我的php文件..

<?php
$response = $_POST['data'];
echo "Hello ".$response;
?>

我已经尝试将我的php文件封装在带有帖子操作的表单中,但仍然是同样的错误。

提前致谢!

4 个答案:

答案 0 :(得分:0)

<script type="text/javascript">

var name = prompt('Please enter your name');

$.ajax({
    url: 'index.php',
    type: 'POST',
    dataType: 'text',
    data: {name : name},
    success: function(data){ 
      console.log(data);
    }       
}); 

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    // get post data name from ajax

    $response = $_POST['name'];

    echo "Hello ".$response;


    // stop executing other codes to test it
    die();
}


?>

答案 1 :(得分:0)

更改您的数据选项数据:名称,数据:{&#34;数据&#34;:名称},

<script type="text/javascript">
    var name = prompt('Please enter your name');
    $.ajax({
        url: 'test5.php',
        type: 'POST',
        dataType: 'text',
        data: { "data":name},
        success: function(data){ 
          console.log(data);
        }       
    }); 
    </script>

答案 2 :(得分:-1)

试试这个会对你有用,

您必须使用名称值对来传递数据

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
<script type="text/javascript">
var name = prompt('Please enter your name');
$.ajax({
    url: 'test.php',
    type: 'POST',
    dataType: 'text',
    data: 'name='+name,
    success: function(data){ 
      console.log(data);
    }       
}); 
</script>

test.php的

<?php

echo $_POST['name'];

答案 3 :(得分:-1)

data: name替换为data: JSON.stringify({"name": name})并使用contentType: "application/json"代替dataType:'text'

var name = prompt('Please enter your name');
$.ajax({
    url: 'index.php',
    type: 'POST',
    contentType: "application/json",
    data: JSON.stringify({"name": name}),
    success: function(data){ 
      console.log(data);
    }       
}); 
</script>

并在您的php脚本中查询&#39; name&#39;,而不是数据

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

编辑以解决空数组问题

 <?php
    $temp = file_get_contents("php://input");
    $_POST = json_decode($temp, true);
    $response = $_POST["name"];
    echo "Hello ".$response;
    ?>

另一个编辑:将contentType更改为不包含json

剧本:

var name = prompt('Please enter your name');
    $.ajax({
        url: 'index.php',
        type: 'POST',
        contentType: "application/x-www-form-urlencoded",
        data: $.param({"name": name}),
        success: function(data){ 
          console.log(data);
        }       
    }); 

    </script>

在服务器中:

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