Php 表单中的jquery对话框只工作一次

Php 表单中的jquery对话框只工作一次,php,jquery,html,Php,Jquery,Html,我知道这个问题已经讨论过很多次了。 我尝试了所有给出的答案,但没有成功 在一个id=“imprim”和name=“imprim”的长表单中,我使用一个jQueryUI对话框,让用户在通过按钮打开的要打印的项目之间进行选择 第一次单击按钮时效果很好,但第二次,覆盖显示,页面冻结 这是我的jquery代码,在jquery(文档)中。就绪(函数($) //init dialog var $print = $('#items_toprint').dialog({ modal: t

我知道这个问题已经讨论过很多次了。 我尝试了所有给出的答案,但没有成功

在一个id=“imprim”和name=“imprim”的长表单中,我使用一个jQueryUI对话框,让用户在通过按钮打开的要打印的项目之间进行选择

第一次单击按钮时效果很好,但第二次,覆盖显示,页面冻结

这是我的jquery代码,在
jquery(文档)中。就绪(函数($)

//init dialog
var $print = $('#items_toprint').dialog({
            modal: true,
            autoOpen: false,
            resizable: false,
            width: 500,
            height: 500,
            close: function() {
                $(this).parent().appendTo("#imprim");
                $('#items_toprint').dialog('close');
            },
            buttons: {
                VALIDER: function(p) {
                    p.preventDefault();
                    $(this).parent().appendTo("#imprim");
                    $(this).dialog('close');

                }}
        });


//button action

        $('#bttn_print').on("click", (function(e) {
            e.preventDefault();
            $print.dialog('open');
        }));
    });
和HTML(PHP生成)代码:

打印“”;
打印“”;
$sql1=“选择p.id作为criterid、p.code、p.libelle”;
$sql1.=“FROM”.MAIN_DB_前缀。“c_参数作为p”;
$sql1.=“其中p.active=1”;
$sql1.=”和中的p.id(从.MAIN_DB_前缀中选择fk_参数。'patient_参数,其中fk_patient='。$patient->id.)”;
$sql1.=“按p.code订购”;
$result1=$db->query($sql1);
$num=$db->num\u行($resql);
如果($num>=1){
打印“”;
$categ_encours=“”;
$der_categ=“”;
而($row=mysqli\u fetch\u assoc($result1))
{
$categu_encours=$row[代码];
如果($categ_encours!=$der_categ)
{
打印“”;
打印“”;
打印$categ_encours;
打印“”;
打印“”;
打印“”;
打印“”;
打印“”;
$der_categ=$categ_encours;
}
打印“”;
打印“”;
打印$row['libelle'];
打印“”;
打印“”;
打印“”;
打印“”;
打印“”;
}
打印“”;
打印“”;
打印“参数表”;
打印“”;
打印“”;
打印“”;
打印“”;
打印“”;
打印“”;
}
否则{
打印“

”; 打印“你是病人的罪魁祸首!”; 打印“

”; } 打印“”;
制作一个名为PageEvents的js函数在document.ready()中调用此函数


抱歉,它不起作用。尽管有“e.preventDefault()”,当点击按钮时,表单被提交…表单中存在您的按钮吗?@Gerard13007我编辑了我的答案,请现在检查,您添加了一些额外的偏执…好的,请现在检查。并确认我@Gerard13007我担心这会导致其他问题…我的javascript页面包含大量脚本,并且不仅仅用于此表单。
    print '<form method="post" id="imprim" name="imprim" action="imprime.php">'; 



    print '<div id="items_toprint" align="center" title = "Choix des graphes" style="display:none" >';
$sql1 = " SELECT p.id as criterid, p.code, p.libelle ";
$sql1.= " FROM " . MAIN_DB_PREFIX . "c_param as p ";
$sql1.= " WHERE p.active = 1";
$sql1.= " AND p.id  IN (SELECT fk_parametre FROM " . MAIN_DB_PREFIX . 'patient_params WHERE fk_patient = ' . $patient->id . ")";
$sql1.= " order BY p.code";

$result1 = $db->query($sql1);
$num = $db->num_rows($resql);
if ($num >= 1) {
print '<table class="noborder" width="450px" align="center">';
$categ_encours = "";
$der_categ = "";
while ($row = mysqli_fetch_assoc($result1))
    {

    $categ_encours = $row[code];
    if ($categ_encours != $der_categ)
        {
        print '<tr>';
        print '<td width="300px" Style="color:#B40431" align= "center">';
        print $categ_encours;
        print '</td>';
        print '<td>';
        print '&nbsp;';
        print '<td>';
        print '</tr>';
        $der_categ = $categ_encours;
        }
    print '<tr >'; 
    print '<td width="300px" class="titre_noir" align= "right">';
    print $row['libelle'];
    print '</td>';
    print '<td  align= "left">';
    print '<input type="checkbox"  name ="graph_toprint[]" value="'.$row['criterid'].'" >';
    print '</td>';
    print '</tr>';
    }
        print '<tr>';
print '<td class="titre"  align="center">'; 
print "Tableau paramètres";
print '</td>';
print '<td align="left">';
print '<input type="checkbox" name="tableau_param[]"  value="t_param" CHECKED = "checked">';
print '</td>';
print '</tr>';
    print '</table>';
}

else {

    print '<p align="center" font-color="red" ><b>';
    print "Vous ne suivez aucun critère pour ce patient !";
    print '</b></p>';


    }

print '</div>';
$(document).ready(function(){
PageEvents();
});



function PageEvents(){
     $('body').on("click","#bttn_print", function(e) {
                e.preventDefault();
                $print.dialog('open');
            });
}