2012-12-16 65 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

相關問題