自从过去24小时以来,我正在努力/尝试一个简单的事情,我无法理解为什么我无法访问PHP变量。我知道我做错了什么,我不知道那是什么......
window.alert("Variable" + <?php echo $_POST; ?> );
它的输出为Function Array() {[native code]}
,我如何打印值?我认为POST属性是空白的,任何人都可以检查?为什么POST变量是空白的?
我通过POST方法将数据发送到文件
<script type="text/javascript">
function callAjaxAddition() {
arguments0 = {
arg1: $("#exampleForm input[id='pac-input']").val(),
arg2: ("#exampleForm input[id='pac-input']").val()
};
$.ajax({
type: "POST",
url: "processAjax.php",
data: {
arguments: arguments0
},
success: function(data) {
$("#answer").html('<ul><li>' + data + '</li></ul>');
send_apptn_req();
}
});
return false;
}
</script>
和ProcessAjax.php文件是
<?php $a=0;foreach($_POST['arguments'] as $v) $a= $v;echo $a;?>
先谢谢你..
答案 0 :(得分:1)
$_POST是传递给当前变量的关联变量数组 脚本。
因此您需要使用print_r
代替echo
。
window.alert("Variable" + <?php print_r($_POST); ?> );
答案 1 :(得分:0)
$_POST
是一个数组,因此您应该使用print_r()
或var_dump()
代替echo
:
window.alert("Variable" + <?php print_r($_POST); ?> );
如果在Javascript中调试$ _POST变量是你想要做的,我建议你这样做:
console.log(<?php echo json_encode($_POST); ?>);
您将在浏览器中看到开发者工具中的内容。
作为参考,您可以查看此question的答案。
修改强>
<form method="POST">
<input type="text" name="first"/>
<input type="text" name="second" />
<input type="submit" value="submit">
</form>
<?php if (isset($_POST)): ?>
<script type="application/javascript">
console.debug(<?php echo json_encode($_POST); ?>);
</script>
<?php endif; ?>
编辑2 :(更新代码后)
将ajax jQuery函数中的type
选项更改为method
,如下所示:
<script type="text/javascript">
function callAjaxAddition() {
arguments0 = {
arg1: $("#exampleForm input[id='pac-input']").val(),
arg2: $("#exampleForm input[id='pac-input']").val()
};
$.ajax({
method: "POST",
url: "processAjax.php",
data: {
arguments: arguments0
},
success: function(data) {
$("#answer").html('<ul><li>' + data + '</li></ul>');
send_apptn_req();
}
});
return false;
}
</script>
另请注意,在AJAX POST之后,您的$_POST
变量将包含您传递给data
函数的$.ajax
对象,因此您传递的是:
data: {
arguments: {
arg1: $("#exampleForm input[id='pac-input']").val(),
arg2: ("#exampleForm input[id='pac-input']").val()
}
}
将转化为:
Array (
'arguments' => Array (
'arg1': 'value of arg1'
'arg2': 'value of arg2'
)
)
所以processAjax.php中的循环是没用的,因为你没有循环遍历内部数组。