文本区域表单字段未将值传递给JavaScript

Text area form field not passing value to JavaScript

本文关键字:值传 JavaScript 区域 表单 字段 文本      更新时间:2023-09-26

我的网站上有一个表单,它将其值传递给一些JavaScript,然后JavaScript将信息传递给PHP页面以更新数据库。提交表单时,除了作为文本区域的两个字段外,所有值都将添加到数据库中。

如果我删除JavaScript并添加一个简单的表单操作来直接将变量传递到PHP页面,那么所有信息都会添加到数据库中,包括两个文本区域字段,所以问题似乎一定出在表单和JavaScript中,否则这两个字段无论如何都不会添加到数据库。

下面是我的表单和JavaScript。(请保持简单,我只包含了表单中存在问题的两个元素,因为这是一个长表单,如果这是错误的方法,请告诉我。)

    <form action="" method="post" class="save">
        <label class="col-sm-3 control-label">Notes</label>
        <textarea name="notes" rows="10" class="form-control"></textarea>
        <input type="submit" name="submit" class="save" value="Save This Job" id="blue"/>
     </form>

现在JavaScript

    $(document).ready(function(){
    $('form.save').submit(function () {
    var ref_number = $(this).find("[name='ref_number']").val();
    var job_title = $(this).find("[name='job_title']").val();
    var start_date = $(this).find("[name='start_date']").val();
    var closing_date = $(this).find("[name='closing_date']").val();
    var category = $(this).find("[name='category']").val();
    var location = $(this).find("[name='location']").val();
    var salary = $(this).find("[name='salary']").val();
    var client = $(this).find("[name='client']").val();
    var job_description = $(this).find("[name='job_description']").val();
    var license = $(this).find("[name='license']").val();
    var notes = $(this).find("[name='notes']").val();
         // ...
        $.ajax({
         type: "POST",
         url: "save.php",
         data: {
              ref_number : ref_number,
              job_title : job_title,
              start_date : start_date,
              closing_date : closing_date,
              category : category,
              location : location,
              salary : salary,
              client : client,
              job_description : job_description,
              license : license,
              notes : notes,
                  },
                  success: function(){
                  new PNotify({
                    title: 'Job Posted',
                    text: '
                    type: 'success',
                     shadow: true
                });

                    }
                      });
                    this.reset();
                    return false;
                      });
                  });

因此,这里有一个PHP的简化版本,我一直在更改,正如我上面所说的,如果我将变量直接发送到PHP页面,所有信息都会添加到mysql数据库中,没有问题,但在使用JavaScript时,不会添加作业描述和注释字段。

      $ref_number = $_POST['ref_number']; 
      $job_title = $_POST['job_title'];
      $start_date = $_POST['start_date']; 
      $closing_date = $_POST['closing_date'];
      $category = $_POST['category']; 
      $location = $_POST['location'];
      $salary = $_POST['salary'];
      $client = $_POST['client'];
      $job_description = $_POST['job_description'];
      $license = $_POST['license'];
      $posted_by = $_POST['posted_by'];
      $site_id = $_POST['site_id'];
      $notes = $_POST['notes'];
      mysql_query("INSERT INTO joborders 
      (ref_number, job_title, start_date, closing_date, category, location, salary, client_name, job_description, license_required, site_id, posted_by, status, notes, posted_date) VALUES('$ref_number', '$job_title', '$start_date', '$closing_date', '$category', '$location', '$salary', '$client', '$job_description', '$license', '$site_id', '$posted_by', 'open', '$notes',  NOW()) ") 
      or die(mysql_error());

所以我发现了问题,在页面的底部是这段代码,尽管我已经看了十几遍,但我以前没有注意到。我一删除它,它就起作用了,所以现在我只需要弄清楚我是否可以将它合并到现有的代码中,这样我仍然可以使用tnymce

    tinymce.init({
   selector: "textarea"
   });

好的,所以问题是因为页面上有这段代码

    tinymce.init({

选择器:"文本区域"});

所以我把这个改成引用类的文本都是这样的形式。

 tinymce.init({
selector: "textarea.form-control",

});

现在所有的表单字段都发布到数据库中。

感谢您的建议和意见,非常感谢。