字符数据没有从php传递到jquery

时间:2016-03-27 09:36:53

标签: javascript php jquery mysql ajax

Html文件

子组合框的值由php select查询检索,值为字符。

我试过用整数值完全通过了。

<select name="sub" id="sub">
        <option value="">Select semester first</option>
    </select>
<select name="staff" id="staff">
        <option value="">Select sub first</option>
    </select>

的Javascript

$('#sub').on('change',function(){
        var SUB = $(this).val();
        if(1){
            $.ajax({
                type:'POST',
                url:'sta.php',
                data:'sub='+SUB,//character is not passing.
                success:function(html){
                    $('#staff').html(html);
                }
            }); 
        }else{
            $('#staff').html('<option value="">Select sub first</option>'); 
        }
    });

php文件

if(isset($_POST["sub"]) && !empty($_POST["sub"]))
{
    //Get all city data
    $query = mysql_query("SELECT staff_name FROM subject WHERE course_name = ".$_POST['sub']);

    //Count total number of rows
    $rowCount = mysql_num_rows($query);//It always shows 0

    //Display cities list
    if($rowCount > 0){
        echo '<option value="">Select staff</option>';
        while($row = mysql_fetch_assoc($query)){ 
            echo '<option value='.$row['staff_name'].'>'.$row['staff_name'].'</option>';
        }
    }else{
        echo '<option value="">staff not available</option>';//when i tried to execute it comes here
    }
}

1 个答案:

答案 0 :(得分:2)

在php中查询中存在简单的语法错误,只需将其重写为:

$query = mysql_query("SELECT staff_name FROM subject WHERE course_name = '".$_POST['sub']."'");

无论您传递除数字以外的数据,始终使用单引号(例如'myData')来围绕值。