【发布时间】:2013-02-25 04:29:36
【问题描述】:
任何人都可以看出这段代码有什么问题吗?它连接到一个回显 Json 数据的 php 函数。我正在运行 Jquery 1.9.1。我相信问题出在 Jquery 脚本的末尾,但我找不到任何解决方案...
var formObject = {
run : function(obj) {
if (obj.val() === '') {
obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
} else {
var id = obj.attr('id');
var v = obj.val();
jQuery.getJSON('func/blankett_func.php', { id : id, value : v }, function(data) {
if (!data.error) {
obj.next('.update').html(data.list).removeAttr('disabled');
} else {
obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
}
});
}
}
};
$(function() {
$('.update').live('change', function() {
formObject.run($(this));
});
});
PHP 函数:
$id = $_GET['id'];
$value = $_GET['value'];
try {
$objDb = new PDO('mysql:host=localhost;dbname=blankett', 'root', 'root');
$objDb->exec('SET CHARACTER SET utf8');
$sql = "SELECT *
FROM `region`
WHERE `master_id` = ?";
$statement = $objDb->prepare($sql);
$statement->execute(array($value));
$list = $statement->fetchAll(PDO::FETCH_ASSOC);
if (!empty($list)) {
$out = array('<option value="">Select one</option>');
foreach($list as $row) {
$out[] = '<option value="'.$row['id'].'">'.$row['region'].'</option>';
}
echo json_encode(array('error' => false, 'list' => implode('', $out)));
} else {
echo json_encode(array('error' => true));
}
} catch(PDOException $e) {
echo json_encode(array('error' => true));
}
} else {
echo json_encode(array('error' => true));
}
【问题讨论】:
-
相当支持问题出在javascript中?
-
只用javascript试试,没有任何动态代码
-
为什么php语言的用户会误认MVC的存在?
-
您检查控制台是否有错误?我相信
live()在 1.9.1 中已经过时,甚至可能被删除。应该是$(document).on('change', '.update', function() {。 -
live() 在 jQuery 1.9 中被移除。使用 on()
标签: php jquery mysql cascadingdropdown