0

我的问题是我试图通过 POST/GET 推送一个参数,这个参数在下面的代码中传递给 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>

显示内容.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();
 }

发送内容.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();

?>

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

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

当您知道时非常容易,如果某些事情的行为不像它应该的那样非常烦人!

4

2 回答 2

1

尽管您使用的是 POST 请求,但您并没有真正发布任何内容。

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

$cId=$_REQUEST["q"];

或者

$cId=$_GET["q"];
于 2013-02-17T21:41:44.773 回答
0

你有几个问题:
- 如前所述,你需要 $_GET 或 $_REQUEST
- 关闭 JS 文件中的脚本标签 -
我不熟悉 ob_start() 但 echo 效果很好
- 如果文件都在同一个文件夹中, 那么你的 AJAX 请求路径是错误

的 Here are working files...

<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;
?>
于 2013-02-17T22:06:25.620 回答