使用php和jquery将输入从表单插入到数据库

时间:2014-08-08 17:32:30

标签: php jquery mysql

我使用一个简单的uploadscript将一些照片上传到我的服务器,并在数据库中为galery添加一些信息。脚本工作正常。所有照片都上传到正确的位置,我定义的变量在数据库中设置。只有来自我的表单的输入(来自字段和区域和radiobutton的文本)才会被插入到mysql中。

这是我用来开始上传并将数据插入数据库的脚本。

$( "#load" ).submit(function( event ) {

uploadObj.startUpload();  

event.preventDefault();
});

这是表格

<form id="load" action="">
<p style="color: #05296B;"><b>Galerietitel:</b>
<input class="textbox" type="text" name="gal_title" style="width: 200px; margin-left: 164px;" /></p>
<p style="color: #05296B;"><b>Galerietext:</b></p>
  <p><textarea id="styled" name="gal_text" onfocus="setbg('#FFF9B1');" onblur="setbg('#e5fff3')"  style="resize: none; color: #05296B;" WRAP=SOFT></textarea></p>
 <p style="color: #05296B;"><b>Öffentliche Galerie?:</b>
 <input type="radio" id="publics" name="publics" style="margin-left: 80px;" value="1" checked >  ja
 <input type="radio" id="publics" name="publics" style="margin-left: 25px;" value="0" /> nein
</p>

 <div id="fileuploader">Bilder auswählen</div>

<input type="submit" class="button-link" value="Hoch laden">
</form>

最后是php

$gal_title = $_POST['gal_title'];
$gal_text = $_POST['gal_text'];
$publics = $_POST['publics'];
$nickname = "ms";
$test = "marco";
$path2 = date('dmY');
$path3 = mt_rand(1, 999999);
$uploads = $test."_".$path2.$path3;

$output_dir = "galerie/".$uploads."/";
if(isset($_FILES["loadpic"]))
{

mkdir('galerie/'.$uploads.'', 0775);



$ret = array();

$error =$_FILES["loadpic"]["error"];
if(!is_array($_FILES["loadpic"]["name"])) 
{

    $fileName = $_FILES["loadpic"]["name"];
    move_uploaded_file($_FILES["loadpic"]["tmp_name"],$output_dir.$fileName);
    $ret[]= $fileName;
}
else 
{
  $fileCount = count($_FILES["loadpic"]["name"]);
  for($i=0; $i < $fileCount; $i++)
  {
    $fileName = $_FILES["loadpic"]["name"][$i];
    move_uploaded_file($_FILES["loadpic"]["tmp_name"][$i],$output_dir.$fileName);
    $ret[]= $fileName;

  }

}


$stamp = time();


        $sql = "INSERT INTO
                galery
                (user_id,
                nickname,
                uploads,
                gal_title,
                gal_text,
                publics,
                datum
               )
           VALUES
                ('".mysql_real_escape_string(trim($test))."',
                 '".mysql_real_escape_string(trim($nickname))."',   
                 '".mysql_real_escape_string(trim($uploads))."',
                 '".mysql_real_escape_string(trim($gal_title))."',    
                 '".mysql_real_escape_string(trim($gal_text))."',
                 '".mysql_real_escape_string(trim($publics))."', 
                 '".mysql_real_escape_string(trim($stamp))."'    
                 )";    
                  mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

&#39; gal_title&#39; ,&#39; gal_text&#39;和#&quot; publics&#39;不会被插入数据库。所以我表格中的所有数据。怎么了?

@Forgest:

这里我调用galery_upload.php(所有代码都包含的文件):

$(document).ready(function()
{
var uploadObj = $("#fileuploader").uploadFile({

url:"galery_upload.php",

multiple:true,

autoSubmit:false,

fileName:"loadpic",

formData: {name:"load"},

maxFileSize:20480,

maxFileCount:6,

dynamicFormData: function()

{

var data ={ location:"Germany"}

return data;

},

2 个答案:

答案 0 :(得分:0)

在获取POST数据时,您的表单创建应该是POST。切换你的html顶行:

<form id="load" action="">

为:

<form id="load" action="" method="POST">

这可以解决您的问题。

答案 1 :(得分:0)

我解决了。我必须将表格中的数据提供给

var data = $("form :input").serialize();

之前我的var数据中设置了一个示例+眼睛滚动+ 现在所有需要的数据都到了正确的位置。谢谢你的帮助。

相关问题