我正在开发一个涉及发布到ajax的功能。相关的代码位应该选择某个类,遍历其元素,将所需的元素放入数组中并发布该数组。它适用于获取背景图像链接。但是,当应用于用html textarea编写的文本时,相同的概念似乎失败了。即使我使用.val方法从textarea获取文本并将其推入相关数组,然后我发布,没有文本上传到数据库。这是javascript。
$('#createButton').click(function() {
var getImages = [];
var getText = [];
var count = $('.count').length;
var tcount = $('.tcount').length;
if ( count >= 1 ) {
$('.count').each(function () {
if ($(this).css('background-image')) {
var src = $(this).css('background-image');
var parseSrc = src.replace(/^.*(?=images)|\W+$/g, ''); //parse out the actual link from url( link )
getImages.push(parseSrc);
}//end nested if
});//end each function
}//end count if
if ( tcount >= 1 ) {
$('.tcount').each(function () {
if ($(this).val()) {
var textVal = $(this).val();
getText.push(textVal);
}//end if
});//end each
}//end tcount if
$.post('fileHandler.php', {image: getImages, text: getText});//end post
});//end createButton click
和PHP
include('classes/fileclass.php');
$f = new Files ();
$storyID = $f->idHandler();
if ($_POST['image']) {
foreach($_POST['image'] as $imageSrc) {
$f->insertStoryImages($storyID, $imageSrc);
}//end foreach
if ($_POST['text']) {
foreach($_POST['text'] as $textBox) {
$f->insertStoryText($storyID, $textBox);
}//end foreach
}//end text if
}//end image if
实际上从OOP脚本调用服务器的位(仅用于文本调用,图像工作正常):
public function insertStoryText ($storyID, $textBox) {
$db = new pdo("mysql:host=localhost;dbname=storyboard;charset=utf8", "someuser", "somepass");
$stmt = $db->prepare("INSERT INTO sbData(storyID, textBox) VALUES (:storyID, :textBox)");
$stmt->execute(array(':storyID' => $storyID, ':textbox' => $textBox));
}//end insertShoot
注意:要明确,.tcount
类会选择一个html textarea对象。
答案 0 :(得分:0)
问题在于'.tcount'并不表示textarea而是div。很自然地,当我使用.val()时,它将返回一个空字符串。可怕的虫子。