2012-12-16 22 views
1

所以基本上我想要做的就是抓住选定的清单元素(S)和发送自己的“名”到数据库中。我也想对收音机做同样的事情。下面是代码:使用清单及无线电将信息输入到数据库

<?php  
     $user_files_directory = 'uploads/unused_images/'.$_SESSION['user_id'].'/'; 

     if (file_exists($user_files_directory)) { 

     $dir_handle = @opendir($user_files_directory); 

     while ($file = readdir($dir_handle)) { 

     if($file == "." || $file == ".." || $file == "index.php") 

     continue; 

      echo " 
      <div id=\"image_container\"> 
       <div id=\"unused_images_selector\"> 
        <img src=\"uploads/thumbs/unused_images/".$_SESSION['user_id']."/$file\" alt=\"Test\"> 
       </div> 
       <div id=\"checkbox\"> 
         <input type=\"checkbox\" name=\"$file\"> 
       </div> 
      </div> 
      "; 
     } 
     // Close 
     closedir($dir_handle); 

     } else { 
      echo "<p> 
         You have not uploaded any images. 
        </p>"; 
     } 
    ?> 

一个为这个职位存在:

$file = $_POST['file']; 

,这里是休息:

function create_new_page($page_name, $album_name, $file, $file1, $file2) { 
     $page_name = mysql_real_escape_string(htmlentities($page_name)); 
     mysql_query("INSERT INTO `pages` VALUES ('', '$album_name', '".$_SESSION['user_id']."', UNIX_TIMESTAMP(), '$page_name', '$file2', '$file3', '$file')"); 
     return mysql_insert_id(); 
    } 

一切,但无线电/清单的工作,任何帮助是很大的赞赏,我知道代码可能不是最好的,但那是因为我没有做太多的PHP,只是想要一些工作代码,尽管现在并不担心这里和那里的问题。

EXTRA:$ file是放置在页面中的图像的名称(这是用户希望使用的图像的选择区域),所以我希望通过使用$文件可以创建MYSQL数据库中的图像名称,但它写入“数组”。

+0

什么'$文件= $ _ POST [ '文件'];'返回? – bobthyasian

+0

我会把这个放在哪里?我已经在我的文档中找到了这个,但是如何确定它返回的内容,因为当我将它放到主页上时没有任何内容显示出来,不确定这是否有用。 – user1907323

回答

0

你误解了一个HTML表单,并提取其在PHP的方式运作。 您的name属性设置为实际的文件名(这是“文件”),并试图提取与名称file的POST PARAM。做到这一点的方法是将命名复选框file[](如文件的数组中),并设置value属性的文件名。您的PHP代码可能保持不变。

修改您的复选框的代码如下:

<div id=\"checkbox\"> 
     <input type=\"checkbox\" name=\"file[]\" value=\"$file\" /> 
</div> 

既然你已经具备以下条件:

$file = $_POST['file']; 

$file会给你的文件名的数组。您可以根据需要处理这些数据。

编辑:由于OP已经修改的问题。

要将多个图像名称存储到数据库中,所以你需要火多INSERT语句。您可能会循环使用$file变量并构建您的查询。

使用的东西上以下行:

$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname"); 

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

foreach ($file as $filename) { 
    $query = $mysqli->prepare("INSERT INTO tblImages vcImageName VALUES (?)"); 
    $query->bind_param("s", $filename); 
    $query->execute(); 
    $query->bind_result($result); 
    $query->fetch(); 
    $query->close(); 
} 

$mysqli->close(); 
+0

谢谢你们,无线电也需要做同样的事情吗? – user1907323

+0

您还需要将''放入'form'中或使用HTML5属性。除非你使用javascript来发布数据。 – bobthyasian

+0

哦,它是在一个表格中,这个输入正好在中间,它是相当广泛的 – user1907323

相关问题