我在html页面中嵌入了一段php代码,怎么问题来了:怎么把页面中的值传到php中呢,请大家帮帮忙!    
<tr>
<td>选择产品</td>
<td><select name="productname" id="productname" onchange="selectcity()">
<option value="H型钢">H型钢</option> 
<option value="钢板桩">钢板桩</option></select></td>
</tr>
    <tr><td>选择地区</td>
        <td>
      <script type="text/javascript">
            function selectcity(){
            var obj = document.getElementById("productname");
            var grade = obj.options[obj.selectedIndex].value; }
     </script>
<?php $sql=$empire->query("select * from {$dbtbpre}ecms_prices where productname= 'grade'"); 
while($r=$empire->fetch($sql)) {echo" ".$r['city']." ";} ?>
</td>
   </tr>
我这样写不行,应该怎么写才能把grade值传php的sql语句里?

解决方案 »

  1.   

    你的grade 在前端,php运行在后端,怎么可能获取得到?传到后端php有两种方式:
    1、form 提交到php
    2、ajax提交到php
      

  2.   

    但是我这个只是一段php代码啊,怎么post?你的意思是让我重新写个php文件吗?
      

  3.   


    但是我这个只是一段php代码啊,怎么post?你的意思是让我重新写个php文件吗?
      

  4.   

    你这个文件是html 静态文件?要不要重新写个php文件要看你需求啊。
      

  5.   

    用$_COOKIE传输
      

  6.   

    建议用form表单传值吧简单易用,html和javascript都可以写在php文件里,所以将你的html和Javascript写入php就行了,form表单就提交到本页面就可以了。如果有特殊需求例如无刷新提交就用ajax吧
      

  7.   

    不想另外写php文件,就把这个文件后缀改成 .php 的,然后form表单提交给php程序
      

  8.   

    其实这个html页面没啥关系,不管啥页面,你都要是动态页面才行,即.php脚本文件。传值 的话,你在这个文件中获取你要的值,当然你可以用数组也可以用写sql语句那样再来个foreach之类的,把数据搞成数组,这些一定要写在页面上头,下面获取就行了!
      

  9.   

    按说这么写是传不了的,不过php中嵌套js脚本是可以的,比如
    <tr>
    <td>选择产品</td>
    <td><select name="productname" id="productname" onchange="selectcity()">
    <option value="H型钢">H型钢</option> 
    <option value="钢板桩">钢板桩</option></select></td>
    </tr>
        <tr><td>选择地区</td>
            <td>
          
    <?php $sql=$empire->query("select * from {$dbtbpre}ecms_prices where productname= '<script type="text/javascript">
                function selectcity(){
                var obj = document.getElementById("productname");
                var grade = obj.options[obj.selectedIndex].value; }
         </script>'"); 
    while($r=$empire->fetch($sql)) {echo" ".$r['city']." ";} ?>
    </td>
       </tr>
    不过这么玩行是行,但有点被别人感觉智商低的嫌疑,好的办法是你做一个ajax,当然还有更好的办法,你玩的是帝国cms,呵呵,这个以前也是我的最爱。
      

  10.   

    使用ajax提交,或者使用form post过去。
      

  11.   

    <form action="1.php" method="get">
    <input type="text" name="var1"/>
    <input tupe="submit"/>
    </form>上面是html代码然后下面是1.php的代码
    <?
    echo $GET_["var1"];
    ?>这样就输出了 那个输入的值
      

  12.   

         <tr><td>选择地区</td>
            <td><div id = "city"></div>
          </td>  <script type="text/javascript">
                function selectcity(){
                var obj = document.getElementById("productname");
                var grade = obj.options[obj.selectedIndex].value; }            var xmlhttp;
                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("city").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","showcity.php?&grade="+grade+"&sid="+Math.random(),true);
    xmlhttp.send();
         </script>showcity.php
    grade = $_GET['grade'];
    select ******
    echo $city;
    或者拼接其它html。
    一般用 jquery和json方便些。大体应该是上面的代码。你用的汉字传的grade ,如果乱码用escape转化下。