我的Jquery代码仍然获胜'不起作用,但firebug什么也没表现出来

My Jquery code still won't work , yet nothing is shown in firebug

本文关键字:什么 firebug 不起作用 代码 Jquery 获胜 我的      更新时间:2023-09-26

我在15分钟前发布了这段代码,我确实得到了preventDefault问题的帮助,但现在我的警报还没有生效,但firebug没有显示任何与这段代码相关的错误。。,我可以问一下哪里出了问题吗

<?php
        header ("Cache-Control: no-cache, must-revalidate");    // HTTP/1.1
        header ("Expires: Sat 26 Jul 1997 05:00:00 GMT");       // Date in the past
        require_once ("../_includes/functions.php");
        ?>
        <link rel="stylesheet" title="Style CSS" href="../_reports/report_assets/cwcalendar.css" type="text/css" media="all" />
        <script src="../_js/jquery-1.6.2.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../_js/timer.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" src="../_reports/report_assets/calendar.js"></script>
        <script type="text/javascript">
        $(document).ready(function(){
            $('#select').click(function(event){ 
                $(':checkbox').prop("checked", true);
                event.preventDefault();
            });
            $('#deselect').click(function(event){ 
                $(':checkbox').prop("checked", false);
                event.preventDefault();
            });
            $('#add').click(function() {
                var field = '<input class="project_fields" type="text" size ="30" name = field_settings[] /> &nbsp;&nbsp;&nbsp;&nbsp;';
                var checkbox = '<input class ="checkbox" type ="checkbox" name ="check_field[]" />&nbsp;&nbsp;&nbsp;';
                var delete_link = '<a class ="delete_link" style="text-decoration:none;" href="#"> Delete field </a> &nbsp;&nbsp;&nbsp;<br /><br />';
                var input = field + checkbox + delete_link;
                $('#input_fields').append(input);
            });

            $('#project_fields_submit').click(function(event) {
                event.preventDefault();
                var array_fields = new Array();
                $('.checkbox').each(function() {
                    if($(this) .is(':checked')) {
                        array_fields.push('1');
                        alert('checked!!!');
                    }
                    else {
                        array_fields.push('0');
                        alert('not checked !!!')
                    }
                });
                $('#checkboxes').val(array_fields);
            });
            $('#edit_fields_submit').click(function(event) {
                event.preventDefault(); 
                var edit_fields = new Array();
                $('.edit_check').each(function() {
                    if($(this) .is(':checked')) {
                        alert('checked !!!'); // doesn't alert anything after filling out the fields , though it used to
                        edit_fields.push('1');
                    }
                    else {
                        edit_fields.push('0');
                        alert('not checked !!!');
                    }
                });
                $('#edit_checkboxes').val(edit_fields);
                            alert($('#edit_checkboxes').val()); // doesn't work 
            });
            var nextRowID = 0;
            $('#add_edit').click(function() {
                var id = ++nextRowID;
                var new_field = '<input class ="class'+id+'"  type="text" size ="40" name = edit_field_value[] value =""> &nbsp;&nbsp;&nbsp;';
                var new_checkbox = '<input class ="class'+id+'"  type ="checkbox" name ="check_field[]" >&nbsp;&nbsp;&nbsp;';
                var delete_edit = '<a id ="'+id+'" class ="new_delete_edit" style="text-decoration:none;" href="#" > Delete field </a><br><br>';
                var new_input = new_field + new_checkbox; 
                $('#new_input_fields').append(new_input);
                $('#new_input_fields').append(delete_edit);
            });

            $('a.delete_edit').click(function(event) {
                event.preventDefault();
                var ID = $(this).attr('id');
                var delete_field_id = 'edit_field'+ID;
                var field_data = $('#'+ delete_field_id).val(); 
                var project_id =  $('#edit_project_id').val();
                var string = {field : field_data, pid : project_id };
                $.ajax({
                    type: "POST",
                    url: "_ajax/delete_field.php",
                    data: string,
                    success: function(data){
                        $('#'+ID).remove();
                        $('#'+delete_field_id).remove();
                        $('#new_check'+ID).remove();
                    }
                });

            });

            $('.new_delete_edit').live('click', function(event) {
                event.preventDefault();
                var id = $(this).attr('id');
                $('.class'+id).hide();
                $('#'+id).hide();
            });
        });
</script>


<?php
if (isset($_GET['pid']) && isset($_GET['user_id'])) {
    $id = $_GET['user_id']; 
    $pid = $_GET['pid']; 
    $show_id = $_GET['show_id']; 
"       
        $query_settings ="SELECT project_settings FROM projects WHERE project_id ='$pid'";
        $result_settings = mysql_query($query_settings);
        $row_settings = mysql_fetch_array($result_settings,MYSQL_ASSOC);
        if($row_settings['project_settings'] == NULL) {
            echo "<h2> Project Settings </h2>";
            echo "<br><br>";
            echo " <b> Add fields </b>";
            echo "&nbsp;&nbsp;";
            echo "<img id ='add' src='_assets/add.png' /><br><br><br>";
            echo '<form action ="" method="post">';
            echo'<input type="hidden" name="pid" value="'.$pid.'">';
            echo "<input id ='checkboxes' type ='hidden' name ='checkboxes' value ='' >";
            echo "<div id='input_fields'> </div>";
            echo '<input id ="project_fields_submit"  type ="submit" name ="project_fields_submit" class="button" value ="Save Settings" /><br><br>';
            echo '</form>';
            echo "<br><br><br><br><p></p>";
        }
        else  {
            echo "<h2> This Project Settings </h2>";
            echo "<br><br><br><br>";
            echo "<b> Add fields</b>&nbsp;&nbsp;<img id ='add_edit' src='_assets/add.png' /><br><br><br>";
            $fields_data = unserialize($row_settings['project_settings']); 
            $i = 0;
            echo '<form action ="" method="post">';
            echo'<input id ="edit_project_id" type="hidden" name="edit_project_id" value="'.$pid.'">';
            echo "<div id='new_input_fields'> </div>";
            echo "<input id ='edit_checkboxes' type ='hidden' name ='edit_checkbox' value ='' >";
            foreach ($fields_data as $key => $value) {
                if($value =="1") {
                    echo "<input id ='edit_field".$i."' class ='edit_data' type ='text' size ='40' name = edit_field_value[] value ='".$key."' />&nbsp;&nbsp;&nbsp;";
                    echo "<input id ='new_check".$i."' class ='edit_check' type='checkbox' name ='edit_checkboxes' checked />&nbsp;&nbsp;&nbsp;";
                    echo "<a id ='".$i."' class ='delete_edit' style='text-decoration:none;' href='#'> Delete field </a><br><br>";
                } else {
                    echo "<input id ='edit_field".$i."' class ='edit_data' type ='text' size='40' name = edit_field_value[] value ='".$key."' />&nbsp;&nbsp;&nbsp;";
                    echo "<input id ='new_check".$i."' class ='edit_check' type='checkbox' name ='edit_checkboxes' />&nbsp;&nbsp;&nbsp;";
                    echo "<a id ='".$i."' class ='delete_edit' style='text-decoration:none;' href='#'> Delete field </a><br><br>";
                }
                $i++;
            }
            echo '<input id ="edit_fields_submit"  type ="submit" name ="edit_fields_submit" class="button" value ="Save Settings" /><br><br>';
            echo '</form>'; 
        }
        echo '</div>';
        echo '<div id="project-setting-results"></div><div class="clear"></div>';
        echo '</div><!-- end fragment-6 -->';
    }
    ?>

我建议更改您的设计。使用<form>代码和发布并不总是将数据发送到另一个(或同一个)页面进行PHP处理的最佳方式。相反,切换到使用AJAX代码来提交您的表单。

首先,这将允许您摆脱e.preventDefault的混乱。如果您使用AJAX方法(而不是提交表单),许多事情都会自行解决。我可以看到你已经在代码中使用了AJAX,但如果你仍然对它感到不舒服,你可以看看其他答案:

  • 表单未正确过帐
  • 将PHP结果放入HTML页面
  • 更新DIV中的数据

将您的#edit_fields_submit输入字段从type="submit"更改为type="button",并使用javascript/AAJAX:

  1. 获取您通常作为<form>提交的所有值
  2. 使用AJAX将它们提交到PHP文件中进行处理
  3. 在AJAX代码块的success:函数中,使用javascript将用户发送到您希望他们下一个看到的任何页面

示例:

$('#edit_fields_submit').click(function(event) {
    var edit_fields = new Array();
    $('.edit_check').each(function() {
        if($(this) .is(':checked')) {
            alert('checked !!!'); // doesn't alert anything after filling out the fields , though it used to
            edit_fields.push('1');
        }
        else {
            edit_fields.push('0');
            alert('not checked !!!');
        }
    });
    $('#edit_checkboxes').val(edit_fields);
                alert($('#edit_checkboxes').val()); // doesn't work 
    var field_data = //you know how to get these values
    var project_id = //etc
    var string = {field : field_data, pid : project_id };
    $.ajax({
        type: "POST",
        url: "_ajax/myprocessor.php",
        dataType: "json",
        data: string,
        success: function(data){
            document.location.href='yournewpage.php';
        }
    });
});