首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将3行脚本合并成一页

如何将3行脚本合并成一页
EN

Stack Overflow用户
提问于 2014-04-17 09:48:06
回答 1查看 58关注 0票数 0

嗨,我目前使用javascript来调用在次要页面上运行sql查询的小函数,我有大约4到5个这样的小脚本,我只是想知道如何将它们放在一起,并能够调用我需要的一个页面,而不是5个包含3到5行代码的不同脚本。下面是我的代码和过程。

首先,我正在使用的JavaScript。

代码语言:javascript
复制
$("select#principle").attr("disabled","disabled");
            $("select#type").change(function(){
                var id = $("select#type option:selected").attr('value');
                $("select#principle").attr("disabled","disabled");
                $("select#principle").html("<option>wait...</option>");
                $.post("select_principle.php", {id:id}, function(data){
                    $("#Options").addClass("active");
                    $("select#principle").removeAttr("disabled");
                    $("select#principle").html(data);
                });
            });

这是一个JavaScript函数,我使用它检查是否选中了下拉框,然后删除下一个下拉框的禁用属性。但是正如您所看到的,有一个$.Post,它调用一个PHP页面。

调用的页面是

代码语言:javascript
复制
<?php
    include "select.class.php";
    echo $opt->ShowPrinciple();
?> 

这是指向select.class.php页面并运行一个sql查询的php代码。这也是我有多个函数的代码,我希望它在一个脚本中,其他脚本以相同的方式调用其他函数,但只有在调用它们时才能运行它们。

运行的SQl查询如下

代码语言:javascript
复制
// this displays the principle when called

public function ShowAllPrinciple()
{
    $sql = "SELECT principle.principle_id,principle.description,principle.section_id,COUNT(media.principle_id) as media_count
            FROM principle 
            LEFT OUTER JOIN media ON principle.principle_id = media.principle_id 
            AND principle.section_id = media.section_id 
            WHERE principle.section_id={$_POST['id']}
            GROUP BY principle.principle_id,principle.description";
    $res = mysql_query($sql,$this->conn);
    $principle = '<option value="%">choose...</option>';
    while($row = mysql_fetch_array($res))
    {
        $principle .= '<option value="' . $row['principle_id'] . '">' . $row['description']. '...('.$row['media_count'].') </option>';
    }
    return $principle;
}

这只是一个简单的SQL查询,它连接到数据库,然后获取数据并将其显示在下拉框中。

关于如何将这些小脚本放入一个页面并使用JavaScript调用特定函数的任何想法,只有小脚本需要在PHP页面中,而SQL查询位于PHP页面中,这是不能更改的。

代码语言:javascript
复制
 <?php
        include "select.class.php";
        echo $opt->ShowPrinciple();
    ?>

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-17 10:00:42

我认为基于你的问题,你需要这样的东西:

代码语言:javascript
复制
<?php
include "select.class.php";
switch ($_POST['action']) {
    case "firstAction":
        echo $opt->ShowPrinciple();
        break;
    case "secondAction":
        echo $opt->ShowSomethingElse();
        break;
    case default:
        echo 'something went wrong';
        break;
}
?>

其中$action是一个操作,您必须发布或添加url。

Javascript示例:Javascript复选框

代码语言:javascript
复制
$("select#type").change(function() {
    var id = $("select#type option:selected").attr('value');
    $("select#principle").attr("disabled", "disabled");
    $("select#principle").html("<option>wait...</option>");
    $.post("select_principle.php", {action: 'firstAction', id: id}, function(data) {
        $("#Options").addClass("active");
        $("select#principle").removeAttr("disabled");
        $("select#principle").html(data);
    });
});

第二个复选框的Javascript

代码语言:javascript
复制
 $("select#type").change(function() {
     var id = $("select#principle option:selected").attr('value');
     $.post("select_principle.php", {action: 'sencondAction', id: id}, function(data) {
         $("select#principle").html(data);
     });
 });

注意,我没有测试这段代码。一旦您进行了更改,脚本就会将操作作为wel发布到php文件中。在交换机中基于$_POST['action']的php文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23129797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档