我的Jquery代码
function nalozi() {
var id_skupine = $('#skupina option:selected').val();
$('#artikel option').remove();
//$('#artikel').append('<option value="'+id_skupine+'">'+id_skupine+'</option>');
$.getJSON('artikli.php', {id_skupine:$('#skupina').val()}, function(data) {
$.each(data, function(index,item) {
$("#artikel").append("<option value=" + item.id + ">" + item.ime_artikla + "</option>");
});
});
}
$(document).ready(function() {
nalozi();
$('#skupina').change(function() {
nalozi();
});
});
和PHP代码
<?php
if(isset($_GET['id_skupine']))
{
$id_skupine = $_GET['id_skupine'];
$poizvedba = mysql_query("SELECT id,ime_artikla FROM artikli WHERE id_skupine = '$id_skupine'");
$velikost = mysql_num_rows($poizvedba);
for ($i=0;$i<$velikost;$i++)
{
$elements[]=mysql_fetch_assoc($poizvedba);
}
}
echo json_encode($elements);
?>
我没有得到价值。
答案 0 :(得分:1)
<强>更新强>
在对sql查询进行sanitalizing / validating / type-conversion之前,不应该将变量放入。如果您在查询字符串中所期望的值是数字,则需要正确地对其进行类型转换:
$id_skupine = (int) $_GET['id_skupine'];
如果它是一个字符串,你至少可以使用mysql_real_escape_string
函数:
$str = mysql_real_escape_string($_GET['str']);
你不应该像这样抓住db的记录:
if(isset($_GET['id_skupine']))
{
$id_skupine = $_GET['id_skupine'];
$poizvedba = mysql_query("SELECT id,ime_artikla FROM artikli WHERE id_skupine = '$id_skupine'");
$velikost = mysql_num_rows($poizvedba);
while($row = mysql_fetch_assoc($poizvedba)){
$elements[] = $row['ime_artikla'];
}
}
echo json_encode($elements);
答案 1 :(得分:0)
您的查询可能不会返回任何内容
$poizvedba = mysql_query("SELECT id,ime_artikla FROM artikli WHERE id_skupine = '$id_skupine'");
从'$id_skupine'
尝试
$poizvedba = mysql_query("SELECT id,ime_artikla FROM artikli WHERE id_skupine = '".$id_skupine."'");