0

所以我试图让一个 PHP 文件来执行 2-3 个不同的功能。

基本上,当页面加载(test.php)时,它将在页面上加载通用 html 元素。它将加载一个 jquery tab ui 以及一个从 sql 数据库填充的组合框。

上述两个 html 元素我都可以正常工作,那里没有问题,但是 jquery ui 选项卡的生成和 sql/组合框的生成在单独的 PHP 文件中。我想将这两个步骤合并到一个文件中。

在初始页面加载时,它会从上述步骤加载两个元素,但是如果组合框有 onChange 事件或 onClick 事件,我需要让页面发布到自身(test.php)。我一直在阅读有关使用 isset() 或 empty() 的信息,但我不确定如何以正确的方式进行此操作。

有什么建议或例子吗?我很确定这已经被问过很多次了,但到目前为止我还没有找到解决方案。

下拉列表.php

<?php
//Create the DB populated dropdown list

$con = mysql_connect("localhost", "_user", "_pass");


$tables = mysql_query("SHOW TABLES FROM _dropdown");
mysql_select_db("items", $con);

echo '<select id="Type" onChange="dropChange();">';
echo '<option value="" style="display:none;"></option>';
while ($row = mysql_fetch_row($tables)) {
    foreach($row as $value){
        $i = mysql_query("SELECT * FROM $value ORDER BY name ASC", $con);
        echo '<optgroup label="'.ucfirst($value).'"></optgroup>';
        while($row2 = mysql_fetch_row($i)){
            echo '<option id="'.$value.'" value="'.$row2[0].'">'.$row2[0].'</option>';
        }
    }   
}
echo '</select>';

mysql_close($con);
?>

选项卡.php

<?php

$con = mysql_connect("localhost", "_user", "_pass");
mysql_select_db("_database", $con) or die (mysql_error());
$result = mysql_query("SELECT * FROM _table") or die (mysql_error());
$num_rows = mysql_num_rows($result);
mysql_close($con);


echo '
    <script language="javascript" type="text/javascript">
        $( "#tabs" ).tabs({
            beforeLoad: function( event, ui ) {
                ui.jqXHR.error(function() {
                    ui.panel.html(
                        "Couldn\'t load this tab. We\'ll try to fix this as soon as possible. " +
                        "If this wouldn\'t be a demo." );
                });
            }
        });
    </script>

    <ul>
        <li id="S1"><a href="#S1">S1</a></li>
        <li id="S2"><a href="#S2" style="color:red; text-decoration:line-through">S 2</a></li>
        <li id="S3"><a href="#S3" style="color:red; text-decoration:line-through">S 3</a></li>
    </ul>
    <div id="breadcrumbs"></div>
    <div id="s1">

    </div>
    <div id="s2">

    </div>
    <div id="s3">

    </div>  
    ';

?>

所以我试图让“test.php”将这两个脚本组合成一个页面(test.php)并执行这两个功能。而不是onChange="dropChange();" 在 dropdown.php 页面中不会是这样的:

onChange='<? php $_POST["PHP_SELF"] ?>'
4

1 回答 1

0

由于您已经在使用 jquery,您可以在页面顶部添加一个事件监视器,以使页面认为表单已提交,就好像单击了提交按钮一样 -

$(document).ready(function() {
    $("#id_of_your_drop_down").onChange(function(event){
       event.preventDefault(); //prevents the usual redraw behavior
       $("#id_of_your_submit_button").click() //triggers form submission for that submit
       }
    });
});

你可以把 $("#id_of_your_submit_button").click() 代替 dropChange(); 但上述方法是更好的做法。

于 2012-10-30T19:38:14.727 回答