PHP POST变量为空

时间:2013-02-17 21:37:14

标签: php javascript post

我的问题是我试图通过POST / GET推送一个参数,这个参数传递给coode bellow中的js函数,所有这些文件都在同一个目录中。

求你帮助,答案。最好的问候。

<div id="sidebar"> <?php include('showContent.js'); ?>
 <ul>
   <li>
   <h2>TITLE</h2>
      <ul>
    <li><a onclick="showContent('1');">Link1</a></li>
    <li><a onclick="showContent('2');">Link2</a></li>
    <li><a onclick="showContent('3');">Link3</a></li>
      </ul>
    </li>
  </ul>
</div>

showContent.js

<script>function showContent(cId)
 {
 if (window.XMLHttpRequest)
   {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
   }
 else
   {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
 xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
     document.getElementById("contentArea").innerHTML=xmlhttp.responseText;
     }
   }
 xmlhttp.open("POST","contact/sendContent.php?cId="+cId,true);
 xmlhttp.send();
 }

sendContent.php

<?php
    $cId=$_POST["cId"];
    $tmp='error.php';

    switch ($cId) {
        case 1:{
            $tmp='contact.php';
            break;
        }
        case 2:{
            $tmp='idCard.php';
            break;
        }
        case 3:{
            $tmp='location.php';
            break;
        }

    }

    ob_start();
    include($tmp);
    echo ob_get_clean();

?>

P.S .: 你应该在文本编辑器的按钮上添加提示如何使用它们,我花了很多时间来弄清楚如何使用这个吸吮编辑器进行代码格式化。

提示:选择代码按下此按钮!

当你知道的时候非常容易,如果事情没有表现得那么非常烦人!

2 个答案:

答案 0 :(得分:1)

虽然您使用的是POST请求,但实际上并没有发布任何内容。

由于您附加了查询字符串,因此可以访问它。

$cId=$_REQUEST["q"];

$cId=$_GET["q"];

答案 1 :(得分:0)

你有几个问题:
- 提到你需要$ _GET或$ _REQUEST
- 将你的脚本标签关在JS文件中 - 我对ob_start()不熟悉,但回声效果很好 - 如果文件都在同一个文件夹中,那么你的AJAX请求路径是错误的
这是工作文件......

<html>
<body>
<div id="sidebar"> <?php include('showContent.js'); ?>
 <ul>
   <li>
   <h2>TITLE</h2>
      <ul>
    <li><a onclick="showContent('1');">Link1</a></li>
    <li><a onclick="showContent('2');">Link2</a></li>
    <li><a onclick="showContent('3');">Link3</a></li>
      </ul>
    </li>
  </ul>
</div>
<div id="contentArea">content area</div>
</body>
</html>



<script type="text/javascript">function showContent(cId)
 {
 if (window.XMLHttpRequest)
   {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
   }
 else
   {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
 xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
     document.getElementById("contentArea").innerHTML=xmlhttp.responseText;
     }
   }
 xmlhttp.open("POST","sendContent.php?cId="+cId,true);
 xmlhttp.send();
 }
</script>


<?php
    $cId=$_REQUEST["cId"];
    $tmp='error.php';

    switch ($cId) {
        case 1:
            $tmp='contact.php';
            break;

        case 2:
            $tmp='idCard.php';
            break;

        case 3:
            $tmp='location.php';
            break;
    }

    echo $tmp;
?>