我试图从我的数据库中返回一行,其中通过jquery发送到php的id与字段值匹配。我正在回归未定义,似乎无法解决这个问题。
我的jquery:
function renderPreview( event ) {
target = event.target.id;
console.log(target) // should say the id name
$('#results').removeClass();
$('#results').addClass(target).html( $('#textInput').val() );
$('html, body').animate({ scrollTop: 600}, "slow");
console.log('start ajax')
$.ajax({
url: '../test.php',
type: 'POST',
data: [{'class' : target}],
dataType: 'json',
success: function(data) {
var id = data[0];
var name = data[1];
var style = data[2];
$('#codeTest').html("<b>id: </b><br />"+id+"<br /><b> name: </b><br />"+name+"<br /><b> style: </b><br />"+style);
}
});
};
PHP:
$dbstylename = $_POST['class'];
$result = mysql_query("SELECT * FROM style where stylename like '$dbstylename'");
$array = mysql_fetch_row($result);
echo json_encode($array);
mysql_close($con);
?>
还有一行代码可以放在我的jquery或php中,以查看我的chrome开发人员控制台中正在进行的查询?...就像我已经拥有的console.logs一样。
答案 0 :(得分:2)
问题是您没有以正确的方式发送数据。 jQuery将您分配给data:
属性的值传递给jQuery.param
。此函数将数据转换为正确的查询字符串。
但是如果传递一个数组而不是一个对象,.param
期望它是一个对象数组,其中每个对象都有name
和value
属性。
您可以通过直接调用.param
来查看jQuery在您的案例中生成的内容:
> jQuery.param([{'class' : target}])
"undefined=undefined"
如果传递
,则会获得正确的查询字符串[{name: 'class', value: target}]
或
{'class': target}
两者都生成:
"class=<whatever the value of target is>"