Ajax不能在php语句中工作

时间:2014-02-11 06:36:01

标签: php jquery ajax

getsubcat.php

<?php
include("config.php");
error_reporting(0);
 $checkedValue=$_GET['checkedValue']; 
$options= "";
$s=mysql_query("SELECT * FROM `sub_category` INNER JOIN `category` on sub_category.cat_id=category.cat_id where category.cat_name='$checkedValue'");
         while($rows=mysql_fetch_array($s))
         {
             $subcategory=$rows['sub_cat_name'];

             echo '<input name="sub_category" type="checkbox" class="checkbox_check1" onclick="select_subcatinfo('.$subcategory.')" id="checkbox_check1'.$subcategory.'" value="'. $subcategory.'" >&nbsp;'.$subcategory.'<br /><br />';

         }

         ?> 

这是我的php编码,它将通过另一个页面中的ajax加载。下面是我的ajax脚本。

Ajax脚本

function select_subcatinfo(name)
{
    $("#wait").css("display","block");
    var checkedValue1 = name;
    if( $("#checkbox_check1"+name).is(':checked') ) 
    {
        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)
            {
                $("#wait").css("display","none");
                data = xmlhttp.responseText.split("[BRK]");
                document.getElementById("DisplaySubcat").innerHTML = data[0]+" "+data[1];

            }
        }
        xmlhttp.open("GET","getSubcatValue.php?checkedValue1="+checkedValue1,true);
        xmlhttp.send();
    }
    else
    {
        $("#wait").css("display","none");   
    }        
}
</script>

但是在echo语句中这个函数不起作用..这里有任何帮助。 thankss

2 个答案:

答案 0 :(得分:3)

不要使用内联Javascript,使用jQuery绑定事件处理程序:

$(document).ready(function() {
    $(".checkbox_check1").click(function() {
        if (this.checked) {
            $("#wait").show();
            $.get('getSubcatValue.php', { checkedValue1: this.value }, function(response) {
                var data = response.split('[BRK]');
                $("#DisplaySubcat").text(data[0] + ' ' + data[1]);
                $("#wait").hide();
            });
        }
    });
});

答案 1 :(得分:0)

我真的不想回答这个问题......只是清理了操作系统的PHP

<?php
require("config.php");
error_reporting(0);
$checkedValue = $_REQUEST['checkedValue']; 
$options = "";
$s=mysql_query("SELECT * FROM `sub_category` INNER JOIN `category` on   sub_category.cat_id=category.cat_id where category.cat_name='$checkedValue'");
while($rows=mysql_fetch_array($s))
    { 
        $subcategory=$rows['sub_cat_name'];
        echo '<div><input name="sub_category" type="checkbox" class="checkbox_check1" onclick="select_subcatinfo('.$subcategory.')" id="checkbox_check1'.$subcategory.'" value="'. $subcategory.'" >&nbsp;'.$subcategory.'<br /><br /></div>';
    }
?>