Php 加载到div w/AJAX中的表单不再提交

Php 加载到div w/AJAX中的表单不再提交,php,ajax,mysqli,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 d

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

我有一个名为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上单击addjob按钮时,表单加载得很漂亮,但不起作用

            <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>
当我单击SubmitNewJob时,页面的右侧将变为空白。表单将消失,并且不会在sql表中创建新条目。但是,如果我直接从addjob.php使用该表单,它就可以正常工作


我在一次AJAX调用后读到了关于绑定的内容,我猜这与此有关,但我似乎无法让它正常工作。这是我第一次尝试AJAX,非常感谢您的帮助。

没有任何东西调用您的nxtJobjob函数。您如何提交表单?它没有action属性,因此它将提交到原始页面URL。我的错误是,我忘记了包含按钮的代码。我编辑了这个问题以反映它。单击按钮可通过nxtjob函数成功显示所需的表单。@Barmar表单是使用if isset$\u POST['addNewJob']提交的。您的AJAX调用未发送addNewJob参数,因此测试将失败。它发送的唯一参数是{id:nxtjob}。