[英]Text area form field not passing value to 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({
選擇器:“ textarea”});
所以我將其更改為以此類形式引用文本的類。
tinymce.init({
selector: "textarea.form-control",
});
現在,所有表單字段都將發布到數據庫中。
感謝您的所有建議和意見,非常感謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.