使用/ AJAX加载到div中的表单不再提交

时间:2015-04-14 00:58:55

标签: php ajax mysqli

首先让我为信息过载道歉。我不知道什么不起作用,所以我在这里包含了一些东西。

我有一个名为jobs.php的页面,它在左侧显示了一个打开'jobs'的表格。单击添加作业按钮时,使用以下命令将添加新作业的表单加载到页面右侧的div中:

 //Get Next Job

$query = "SELECT * FROM jobs WHERE job_id = (SELECT MAX(job_id) FROM jobs)";
$result = $mysqli->query($query) or die($mysqli->error . __LINE__);
$topjob = $result->fetch_assoc();
$nxtjob = $topjob['job_id'] + 1;

<button class="btn btn-primary pull-right ajaxCall" id="addJobBtn" onclick="nxtJob('<?php echo $nxtjob; ?>')">Add Job</button>

function nxtJob(job) {
    var nxtjob = job;
    $("#jobDetails").html("Loading...");
    $.ajax({
        type: "GET",
        data: {'id':nxtjob},
        url: "addjob.php",
        async: true,
        success: function(data) {
            $("#jobDetails").html(data);
        }
    });
}

get变量背后的原因是我需要将下一个作业#用作表单中的值。

表单本身在addjob.php上,非常简化的版本是:

<?php 
 require 'database.php';

        if (isset($_POST['addNewJob'])) {

        $error = '';

        //Check Job # for duplicate if manually changed
        $job = $_POST['addjob'];

        $query = "SELECT job_id from jobs WHERE job_id = '$job'";
        $result = $mysqli->query($query) or die($mysqli->error . __LINE__);

        if (mysqli_num_rows($result) > 0) {
            $error .= '<br/>Job # already exists.'
        }

        if ($error == '') {
            //Set variables for insert
            $job = $mysqli->real_escape_string($_POST['addjob']);
            $status = $mysqli->real_escape_string($_POST['addstatus']);

            $sql = "INSERT INTO jobs (job_id, status)
        VALUES ('$job', '$status')";
            if (mysqli_query($mysqli, $sql)) {
                $validation = '< div class="alert alert-success" > Job ' . $job . ' Successfully Added </div >';
            } else {
                $validation = '<div class="alert alert-danger" > "ERROR: Could not able to execute' . $sql . mysqli_error($mysqli);
            }
        } else {
            $validation = ' <div class="alert alert - danger">Job Not Added:' . $error . '</div>';
        }
        ?>
        <form class="form - horizontal" method="post" id="addJobForm">
            <div class="form - group">
                <label for="addjob" class="col - sm - 2 control - label">Job #</label>

                <div class="col - sm - 4">
                    <input type="text" class="form - control" name="addjob"
                           value=" <?php echo $nxtjob; ?>">
                </div>
                <label for="addstatus" class="col-sm-2 control-label">Status</label>

                <div class="col-sm-4">
                    <?php
                    $options = array("New", "In Progress", "Waiting for Parts", "Ready for Customer", "Completed");
                    ?>
                    <select class="form-control" name="addstatus">
                        <?php foreach ($options as $option): ?>
                            <option>
                                <?php echo $option; ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
            </div>
            <button type="submit" name="addNewJob" id="addNewJob" class="btn btn-primary pull-right">Submit New
                Job
            </button>
        </form>

 <?php echo $validation; ?>

在jobs.php(下面)上单击添加作业按钮时,表单会加载很好,但不起作用。

            <div class="row">
                <div class="col-md-4">
                    <table class="table table-hover" id="jobTable" data-link="row">
                        <thead>
                        <tr>
                            <th class="col-md-2">Job #</th>

                            <th class="col-md-4">Customer Name</th>

                            <th class="col-md-6">Description</th>
                        </tr>
                        </thead>
                        <?php
                        while ($row = mysqli_fetch_array($jobs)) {
                            // Print out the contents of the entry


                            date_default_timezone_set('America/Los_Angeles');
                            $startdate = date("m/d/Y", strtotime($row['started']));


                            echo '<tr>';
                            echo '<td><a class="ajaxCall" href="#" rel="' . $row['job_id'] . '"></a>' . $row['job_id'] . '</td>';
                            echo '<td>' . $row['cust_name'] . '</td>';
                            echo '<td class="col-lg-2">' . $row['description'] . '</td>';
                            echo '</tr>';
                        }
                        ?>
                        </tbody>
                    </table>
                </div>
                <div class="col-md-8">
                    <div id='jobDetails'></div>
                </div>
            </div>

单击“提交新作业”时,页面右侧将变为空白。表单消失,并且在sql表中没有创建新条目。但是,如果我直接从addjob.php使用它,表单工作正常。

我已经阅读过关于AJAX调用之后的绑定,我猜它与此有关,但我似乎无法让它工作。这是我第一次尝试AJAX,所以感谢任何帮助。

0 个答案:

没有答案
相关问题