我应该如何使用html,jQuery构建一个控件数组

时间:2013-11-26 22:27:37

标签: javascript php jquery ajax

我只是对html-php-jquery-ajax组合的基本知识,但我在VB很长一段时间。我可以用VB术语来描述我正在尝试做的事情,但我需要在已经使用jQuery,ajax和php接口的html / php页面中进行操作。

我正在查询数据库并返回id&描述。我想动态构建一个代表返回数据的控件数组。

此函数从按钮onclick事件...

调用db读取
    <script type="text/javascript">
    function loadio(){
        var request = $.ajax({
            url: "/db/loadio.php", type: "POST", datatype: "html"
        }); //request   
        request.done(function(result) { 
            $('#status').html("Result: " + result );
        });  //request.done
        request.fail(function(jqXHR, textStatus) {
            $('#status').html("Request failed: " + textStatus + " " + jqXHR.status );
            }); //request.fail
    }; //loadio
</script>

它调用并返回此php文件中的数据......

<?php
    $con = new mysqli('localhost', 'user', 'password', 'dbtable');
        $stmt = $con->prepare('select id, description from iotable where iotype = 1');  
        $stmt->execute();
        $stmt->bind_result($id, $description);
        while ($stmt->fetch()){
            echo $id, $description, "<br/>";
        }
        $stmt->close();
    $con->close();
?>

所以我想做的是以下内容: 构建一个表示返回的$ description的标签数组 构建相应的按钮数组,以某种方式分配#id,以便在单击时可以使用#id作为可以传递给公共函数的变量 (例如警报(“按钮”+ #id +“被点击”);)。

如果我必须在.NET中执行此操作,我将创建一个包含控件和事件的类,并根据需要创建类的新实例,并在该实例中存储所有必需的变量。

所以这是我的问题: 我应该如何使用html,php,jQuery,ajax? 我可以创建动态控制数组吗? 我是否需要考虑采用完全不同的方法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你要做的是用php填充数组,然后以JSON格式发送回来:

<?php
    header('Content-type: application/json'); //we tell the browser that we are going to send json
    $con = new mysqli('localhost', 'user', 'password', 'dbtable');
    $stmt = $con->prepare('select id, description from iotable where iotype = 1');  
    $stmt->execute();
    $stmt->bind_result($id, $description);
    $results = array(); //array declaration
    while ($stmt->fetch()){
        $results[$id] = $description; //associative array : key = id, value = description
    }
    $stmt->close();
    $con->close();
    echo json_encode($results); //we send (ie print) json-encoded array $results
    exit(); //not mandatory, just to precise that the script has to stop here
?>

然后你将在javascript中接收json数组,你可以解码它并在其上循环,例如:

request.done(function(result) { 
    var results =  $.parseJSON(result);
    $.each(results, function(){
        //create here your buttons
    });
});