嗨,我目前使用javascript来调用在次要页面上运行sql查询的小函数,我有大约4到5个这样的小脚本,我只是想知道如何将它们放在一起,并能够调用我需要的一个页面,而不是5个包含3到5行代码的不同脚本。下面是我的代码和过程。
首先,我正在使用的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页面。
调用的页面是
<?php
include "select.class.php";
echo $opt->ShowPrinciple();
?> 这是指向select.class.php页面并运行一个sql查询的php代码。这也是我有多个函数的代码,我希望它在一个脚本中,其他脚本以相同的方式调用其他函数,但只有在调用它们时才能运行它们。
运行的SQl查询如下
// 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页面中,这是不能更改的。
<?php
include "select.class.php";
echo $opt->ShowPrinciple();
?>任何帮助都将不胜感激。
发布于 2014-04-17 10:00:42
我认为基于你的问题,你需要这样的东西:
<?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复选框
$("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
$("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文件。
https://stackoverflow.com/questions/23129797
复制相似问题