如何通过 Ajax 将内容可编辑为 post 的 div 值获取到 php 文件?
How to get div value with content editable to post it to a php file via Ajax?
所以我有一个问题。我正在尝试将用户发布的帖子插入数据库,我想使用 Ajax 使其更加动态并发送输入,select 值和 div 中的内容其内容 editable,通过 jQuery。我正在使用 FormData 获取表单中的所有数据。
我有这个表格:
<form id="data" method="post" enctype="multipart/form-data">
<input type="text" name="title" placeholder="Title">
<div id="content" class="content" contenteditable="true"></div>
<input type="text" name="tags" placeholder="Tags">
<input type="file" name="file">
<select>
<option value="0">Select...</option>
<option value="1">Option A</option>
<option value="2">Option B</option>
<option value="3">Option C</option>
</select>
<button name="insert" value="insert" class="button">Post</button>
</form>
jQuery/Ajax:
$(document).ready(function(){
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
var cont = $("#content").val();
formData.append("content", cont);
$.ajax({
url: 'iproddone.php',
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data);
location.reload();
},
cache: false,
contentType: false,
processData: false
});
return false;
});
});
我最近添加了行 var cont = $("#content").val();
和 formData.append("content", cont);
我注意到 php 在尝试 $_POST['content'];
时不再标记错误但是当我没有这些时第 php 行标记了一个错误。
PHP:
<?php
if (isset($_POST['insert'])) {
include_once('conn.php'); //connection file
$tt=$_POST['title'];
$cont=$_POST['content'];
$tags=$_POST['tags'];
$foo = $tt;
$foo = ucfirst($foo);
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'img/tmb_prod/' . $_FILES['file']['name']);
$photo=$_FILES['file']['name'];
}
echo "Image uploaded";
$connn=mysql_connect("localhost","root","")or die("Connection problems");
mysql_select_db("gtcomputer",$conn)or die("Error");
mysql_query("insert into posts(title,content,tags,photo)values('$foo','$cont','$tags','$photo')",$conn)or die("Error".mysql_error());
}
else{
header('Location: index.php');
}
?>
当我创建新的 post 时,在 post 中 table 仅插入标题、标签和文件名。
刚刚添加 formData.append('content', $('#content').html());
并开始工作。
$(document).ready(function(){
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
formData.append('content', $('#content').html());
$.ajax({
url: 'iproddone.php',
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data);
location.reload();
},
cache: false,
contentType: false,
processData: false
});
return false;
});
});
所以我有一个问题。我正在尝试将用户发布的帖子插入数据库,我想使用 Ajax 使其更加动态并发送输入,select 值和 div 中的内容其内容 editable,通过 jQuery。我正在使用 FormData 获取表单中的所有数据。
我有这个表格:
<form id="data" method="post" enctype="multipart/form-data">
<input type="text" name="title" placeholder="Title">
<div id="content" class="content" contenteditable="true"></div>
<input type="text" name="tags" placeholder="Tags">
<input type="file" name="file">
<select>
<option value="0">Select...</option>
<option value="1">Option A</option>
<option value="2">Option B</option>
<option value="3">Option C</option>
</select>
<button name="insert" value="insert" class="button">Post</button>
</form>
jQuery/Ajax:
$(document).ready(function(){
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
var cont = $("#content").val();
formData.append("content", cont);
$.ajax({
url: 'iproddone.php',
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data);
location.reload();
},
cache: false,
contentType: false,
processData: false
});
return false;
});
});
我最近添加了行 var cont = $("#content").val();
和 formData.append("content", cont);
我注意到 php 在尝试 $_POST['content'];
时不再标记错误但是当我没有这些时第 php 行标记了一个错误。
PHP:
<?php
if (isset($_POST['insert'])) {
include_once('conn.php'); //connection file
$tt=$_POST['title'];
$cont=$_POST['content'];
$tags=$_POST['tags'];
$foo = $tt;
$foo = ucfirst($foo);
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'img/tmb_prod/' . $_FILES['file']['name']);
$photo=$_FILES['file']['name'];
}
echo "Image uploaded";
$connn=mysql_connect("localhost","root","")or die("Connection problems");
mysql_select_db("gtcomputer",$conn)or die("Error");
mysql_query("insert into posts(title,content,tags,photo)values('$foo','$cont','$tags','$photo')",$conn)or die("Error".mysql_error());
}
else{
header('Location: index.php');
}
?>
当我创建新的 post 时,在 post 中 table 仅插入标题、标签和文件名。
刚刚添加 formData.append('content', $('#content').html());
并开始工作。
$(document).ready(function(){
$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
formData.append('content', $('#content').html());
$.ajax({
url: 'iproddone.php',
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data);
location.reload();
},
cache: false,
contentType: false,
processData: false
});
return false;
});
});