为什么 PHP 文件 return "array",而不是其内容
Why does PHP file return "array", but not its contents
我想发送一个数组到 PHP,PHP 但是,只输出“数组”。我有两个文件:
forms1.php 和 forms1.js。 PHP if 语句永远不会变为真。我也尝试过不使用 if 语句。
感谢您在评论中指出,是的,我调用了该函数,并且警报 returns 整个 forms1.php 代码。
旧标题:为什么我的 php 文件看不到 GET["result"]?
// 这个标题是错误的
forms1.js
var nums = [1,2,3,4];
function postcars() {
$.ajax({
type : 'GET',
url : 'forms1.php',
data : {"result": nums},
success: function(resp)
{
alert(resp);
}
});
}
forms1.php
<?php
if ($_GET["result"] != null){
$filename = $_GET["result"];
echo $filename;
}
?>
我通常做的是测试请求中是否有特定参数(使用 isset()
或 !empty()
)然后调用 ob_clean()
丢弃任何可能的输出在那个阶段产生的缓冲区。处理请求,然后完全终止处理,因为它是一个不同的线程。然后返回的响应是仅您要发送的内容。这种使用 GET 请求的方法会导致常规页面加载,其中有一个查询字符串,例如 forms1.php?result=banana
,在该阶段停止并且不显示更多内容 however/.
<?php
if( isset( $_GET['result'] ) ){
ob_clean();
$filename = $_GET["result"];
/* do interesting stuff with variable... */
exit('Hello World! - Send a response');
}
?>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>geronimo</title>
<script src='//code.jquery.com/jquery-latest.js'></script>
</head>
<body>
<script>
var nums = [1,2,3,4];
function postcars() {
$.ajax({
type : 'GET',
url : 'forms1.php',
data : {"result": nums},
success: function(resp){
alert(resp);
}
});
};
// oops, forgot to call the ajax function
postcars();
</script>
</body>
</html>
你没有调用函数postcars()
;
JavaScript 文件应该是这样的:
var nums = [1,2,3,4];
function postcars() {
$.ajax({
type : 'GET',
url : 'forms1.php',
data : {"result": nums},
success: function(resp)
{
alert(resp);
}
});
}
postcars();
nums
是一个数组,里面的元素可以作为单独的值发送,参数名称是result[]
,使用JSON.stringify
将它变成一个字符串
var nums = [1,2,3,4];
function postcars() {
$.ajax({
type : 'GET',
url : 'forms1.php',
data : {"result": JSON.stringify(nums)},
success: function(resp)
{
alert(resp);
}
});
}
我想发送一个数组到 PHP,PHP 但是,只输出“数组”。我有两个文件: forms1.php 和 forms1.js。 PHP if 语句永远不会变为真。我也尝试过不使用 if 语句。
感谢您在评论中指出,是的,我调用了该函数,并且警报 returns 整个 forms1.php 代码。
旧标题:为什么我的 php 文件看不到 GET["result"]? // 这个标题是错误的
forms1.js
var nums = [1,2,3,4];
function postcars() {
$.ajax({
type : 'GET',
url : 'forms1.php',
data : {"result": nums},
success: function(resp)
{
alert(resp);
}
});
}
forms1.php
<?php
if ($_GET["result"] != null){
$filename = $_GET["result"];
echo $filename;
}
?>
我通常做的是测试请求中是否有特定参数(使用 isset()
或 !empty()
)然后调用 ob_clean()
丢弃任何可能的输出在那个阶段产生的缓冲区。处理请求,然后完全终止处理,因为它是一个不同的线程。然后返回的响应是仅您要发送的内容。这种使用 GET 请求的方法会导致常规页面加载,其中有一个查询字符串,例如 forms1.php?result=banana
,在该阶段停止并且不显示更多内容 however/.
<?php
if( isset( $_GET['result'] ) ){
ob_clean();
$filename = $_GET["result"];
/* do interesting stuff with variable... */
exit('Hello World! - Send a response');
}
?>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>geronimo</title>
<script src='//code.jquery.com/jquery-latest.js'></script>
</head>
<body>
<script>
var nums = [1,2,3,4];
function postcars() {
$.ajax({
type : 'GET',
url : 'forms1.php',
data : {"result": nums},
success: function(resp){
alert(resp);
}
});
};
// oops, forgot to call the ajax function
postcars();
</script>
</body>
</html>
你没有调用函数postcars()
;
JavaScript 文件应该是这样的:
var nums = [1,2,3,4];
function postcars() {
$.ajax({
type : 'GET',
url : 'forms1.php',
data : {"result": nums},
success: function(resp)
{
alert(resp);
}
});
}
postcars();
nums
是一个数组,里面的元素可以作为单独的值发送,参数名称是result[]
,使用JSON.stringify
var nums = [1,2,3,4];
function postcars() {
$.ajax({
type : 'GET',
url : 'forms1.php',
data : {"result": JSON.stringify(nums)},
success: function(resp)
{
alert(resp);
}
});
}