繁体   English   中英

无法访问PHP变量

[英]Not able to access PHP variable

自最近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;?>

请预先感谢..

$ _POST是传递给当前脚本的变量的关联数组。

因此,您需要使用print_r而不是echo

window.alert("Variable" + <?php  print_r($_POST); ?> );

$_POST是一个数组,因此您应该使用print_r()var_dump()而不是echo

window.alert("Variable" + <?php  print_r($_POST); ?> );

如果要调试Javascript中的$ _POST变量,我建议您这样做:

console.log(<?php echo json_encode($_POST); ?>);

您将在浏览器的开发人员工具中看到内容。

作为参考,您可以查看此问题的答案。

编辑:

<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变量将包含您传递给$.ajax函数的data对象,以及因此传递的内容:

 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中的循环是没有用的,因为您没有在内部数组中循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM