2011-12-01 152 views
-1

表单包含更改时的下拉菜单,它应该使用ajax从数据库中获取值并显示复选框。 它在这里上涨它的好处,当我提交表单复选框值没有得到张贴。PHP AJAX表单不会发布到PHP

<form name="test" > 

<tr> 

    <td align="left"><b>System :</b> </td> 


    <td align="left"> 

    <select name="system" size="1" onchange="regionsa(this.value);" > 

<option value="0">Select a System</option> 

<?php // Retrieve all the announcement types and add to the pull-down menu. 
$q = "SELECT * FROM System";  

$r = mysqli_query ($CARE_dbc, $q); 


while ($row = mysqli_fetch_array ($r, MYSQLI_NUM)) { 


// $sys_name = $edit_menu['system']; 




?> 
<option value="<? echo $row[1];?>" <? if($row[1]==$edit_menu['system']) 

    { 
    echo $selec = "selected"; 
    }?> > 

<? echo $row[1];?> 
</option> 
<? }?> 
</select> 
    </td> 
</tr> 
<tr> 

    <td align="left"> 
<b>User Type :</b> </td> 

    <td align="left" ><span id="sant"> 


<?php // Retrieve all the announcement types and add to the pull-down menu. 
$qUTdd = "SELECT * FROM `UserType`";  
$rUTdd = @mysqli_query ($CARE_dbc, $qUTdd); 
while ($rUTddrow = mysqli_fetch_assoc($rUTdd)) 
{ 
    $utype_qr = mysqli_query($CARE_dbc,"SELECT * FROM `menu_users` WHERE `menu_users`.menu_id='".$_REQUEST['id']."'"); 
    //$ut = mysqli_fetch_assoc($utype_qr); 


    ?>         
     <input type="checkbox" name="user_type[]" value="<? echo $rUTddrow['idUType'];?>" <? while($ut = mysqli_fetch_assoc($utype_qr)) 
     { 
      if($ut['user_type']==$rUTddrow['idUType']) 
      { 
       echo "checked"; 
      }      
     }?> /> <?echo "<b>".$rUTddrow['userType']."</b>"; ?> 
     <? 
} 
?> 
    </span> 
    </td> 
    </tr> 
    <input type="submit" name="submit" value="Add" /> 
    <input type="hidden" name="submitted" value="TRUE" /> 
    </form > 
    <script language="javascript"> 
    var http = createRequestObject(); 
    function createRequestObject() 
    { 
     var request_o; //declare the variable to hold the object. 
     var browser = navigator.appName; //find the browser name 
     if(browser == "Microsoft Internet Explorer"){ 
      /* Create the object using MSIE's method */ 
      request_o = new ActiveXObject("Microsoft.XMLHTTP"); 
     }else{ 
      /* Create the object using other browser's method */ 
      request_o = new XMLHttpRequest(); 
     } 
     return request_o; //return the object 
    } 
    function regionsa(stateid) 
    { 
     //alert(stateid); 
     http.open('get','internal_request.php?id='+stateid); 
     http.onreadystatechange = handleresponse; 
     http.send(null); 
    } 
    function handleresponse() 
    { 
     if(http.readyState == 4) 
     { 
      var response = http.responseText; 
      //alert(response); 
      document.getElementById('sant').innerHTML = response; 

     } 
    } 
</script> 

Internal_request.php

<?php 
if($_REQUEST['id']=='annmet' && isset($_REQUEST['id']) && !empty($_REQUEST['id'])) 
{ 
    $qUTdd = "SELECT * FROM annmet.`usertype`";  
    $rUTdd = @mysqli_query ($CARE_dbc, $qUTdd); 
    while ($rUTddrow = mysqli_fetch_assoc($rUTdd)) 
    { 
     $utype_qr = mysqli_query($CARE_dbc,"SELECT * FROM CARE.`menu_users` WHERE CARE.`menu_users`.menu_id='".$_REQUEST['id']."'"); 
     //$ut = mysqli_fetch_assoc($utype_qr); 


     ?>         
     <input type="checkbox" name="user_type1[]" value="<? echo $rUTddrow['idUType'];?>" 
      <? while($ut = mysqli_fetch_assoc($utype_qr)) 
      { 
       if($ut['user_type']==$rUTddrow['idUType']) 
       { 
        echo "checked"; 
       }      
      }?> /> <?echo "<b>".$rUTddrow['UserT']."</b>"; ?> 
      <? 
    } 
} 
?> 
+7

您的代码结构非常糟糕,您应该对缩进进行操作。真的很难看到发生了什么事。 –

+0

在'while'循环中放置查询不是太健康 –

回答

0

的AJAX的名称生成复选框被USER_TYPE * * []而原始复选框名称是USER_TYPE []。

编辑: 您还没有提到Form元素的“method”属性的值。因此,此表单使用GET的默认表单提交方法。因此,您不会收到$ _POST变量的任何数据。使用print_r打印$ _GET变量并检查。

+0

不是一个问题,它应该显示,但它不显示,即使当我打印$ _POST –

+0

Somebidy指针为这?????? –

+0

@mark检查帖子上的更新。 –