之前我问过这个问题,我试图运行它,但是我在显示从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文件封装在带有帖子操作的表单中,但仍然是同样的错误。
提前致谢!
答案 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;
?>