【问题标题】:How can i Store HTML arrays into Mysql using PHP in each columns如何在每列中使用 PHP 将 HTML 数组存储到 Mysql 中
【发布时间】:2018-08-22 17:53:05
【问题描述】:

我想知道如何将来自以下 HTML 和 Javascript 的数组存储在 Mysql 数据库中,并将每个字段添加到 MYSQL 数据库中的以下列中: 标题、类别、pdfname(从 HTML 发送的文件的名称) 并且来自 HTML 的文件存储在服务器上名为“pdffile”的目录中 对于 Javascript 添加的每个记录集。

以下是 JAVASCRIPT 代码:

<SCRIPT language="javascript">
function addRow(tableID) {
	var table = document.getElementById(tableID);
	var rowCount = table.rows.length;
	if(rowCount < 10){                            // limit the user from creating fields more than your limits
		var row = table.insertRow(rowCount);
		var colCount = table.rows[0].cells.length;
		for(var i=0; i <colCount; i++) {
			var newcell = row.insertCell(i);
			newcell.innerHTML = table.rows[0].cells[i].innerHTML;
		}
	}else{
		 alert("Maximum Number of Books is 10");
			   
	}
}

function deleteRow(tableID) {
	var table = document.getElementById(tableID);
	var rowCount = table.rows.length;
	for(var i=0; i<rowCount; i++) {
		var row = table.rows[i];
		var chkbox = row.cells[0].childNodes[0];
		if(null != chkbox && true == chkbox.checked) {
			if(rowCount <= 1) {               // limit the user from removing all the fields
				alert("Cannot Remove all the Books.");
				break;
			}
			table.deleteRow(i);
			rowCount--;
			i--;
		}
	}
}
</SCRIPT>


Below is the HTML code:

<!-- begin snippet: js hide: false console: true babel: false -->
</HEAD>
    <div style="border:auto solid 1px; font-size:15px; background-color:red; width:100%;">
    <form action="" enctype="multipart/form-data" id="pdf_form" method="post" name="pdf_form">

    	
      <table id="dataTable" class="form" border="1">
      <tbody>
    	<p>
    	<td >
    		<input type="checkbox" name="chk[]" checked="checked" />
    	</td>
    	<td>
    	<label for="title">Title of PDF</label>
    	<input type="text" id="title" name="title[]">

    	
    	<td>
    	<label for="pdffile">PDF supported. 2MB Maximum)</label>
    	<input type="file" id="pdffile" name="pdffile[]">
    	
    	</td>
    	
    	<td>
    	<label for="category">Category</label>
    	<select id="category" name="category[]"> 
        <option>Science</option>
        <option>Technology</option>
        <option>Biblical</option>
        <option>Business</option>
        <option>Medical</option>
        <option>Engineering</option>
        <option>World</option>
    	</select>
    	</td>
    	
    	</p>
      </tr>
     </tbody>
    </table>


    <p> 
      <input type="button" value="Add PDF" onClick="addRow('dataTable')" /> 
      <input id="button" name="submit" type="submit" value="Save PDF(s)" />
      
      <p>(All actions apply only to entries with check marked check boxes only.)</p>
    </p>
    </form>
    </div>

    //PHP for Upload

    <?php
error_reporting(E_ALL);
   include("session.php");
   session_start();
   
   if($_SERVER["REQUEST_METHOD"] == "POST") { 
      
  	$pdffile = $_FILES['pdffile']['name'];
  	$pdffile_name = $_POST['pdffile'];
  	// Get text
  	$pdffile_name = mysqli_real_escape_string($con, $_POST['pdffile_name']);

  	// image file directory
  	$target = "books/".basename($pdfstore);  
      
$item_title = $_POST['title'];
$item_category = $_POST['category'];
$item_pdfname_name = $_POST['pdfname_name'];

foreach ($_FILES as $pdfname)

  if (move_uploaded_files($pdffile['tmp_name'], 'pdfstorage/' . $file['pdffile']))

for($count = 0; $count<count($item_title); $count++){

  $title = mysqli_real_escape_string($con,$item_title[$count]);
  $category = mysqli_real_escape_string($con,$item_category[$count]);
  $pdfname = mysqli_real_escape_string($con, $item_pdfname[$count]);
  
 {
    


  $sql = "INSERT INTO pdftable (title, category, pdfname) VALUES('$title', '$category', '$pdfname')";
}
if (move_uploaded_file($_FILES['pdffile']['tmp_name'], $target));

  if ($con->query($sql) === TRUE) {
    echo "<div style='border:auto solid 1px; font-size:15px; color:green; background-color:auto; width:100%;'> PDF with Title $title Added Successfully. </div>";
  }
  else {
    echo "Error: " . $sql . "<br>" . $con->error;
  };
};
};
?>

每次都会将字段“Category[]”和“Title[]”添加到数据库中,但是文件不会移动到服务器上的“pdfstorage”文件夹,文件名也不会添加到数据库到。 我需要 MYSQL 代码才能成功地将文件和字段添加到数据库中。我们将不胜感激。

谢谢。

【问题讨论】:

  • 请自己尝试并尝试实现这一目标。我们可以帮助您解决问题,但我们不是来为您工作的。
  • 我需要MYSQL代码才能成功将记录添加到数据库,还有其他需求吗?
  • 仅供参考,缺少一个开口&lt;tr&gt;&lt;p&gt; 不允许在表内
  • @乔恩斯特林。谢谢。下面是 PHP/Mysql 代码:
  • @Jon。 PHP/Mysql 代码:query($sql) === TRUE) { echo "添加"; } else { 回声“错误:”。 $sql 。 “
    ”。 $con->错误; }; }; ?>

标签: javascript php jquery html mysql


【解决方案1】:

<SCRIPT language="javascript">
function addRow(tableID) {
	var table = document.getElementById(tableID);
	var rowCount = table.rows.length;
	if(rowCount < 10){                            // limit the user from creating fields more than your limits
		var row = table.insertRow(rowCount);
		var colCount = table.rows[0].cells.length;
		for(var i=0; i <colCount; i++) {
			var newcell = row.insertCell(i);
			newcell.innerHTML = table.rows[0].cells[i].innerHTML;
		}
	}else{
		 alert("Maximum Number of Books is 10");
			   
	}
}

function deleteRow(tableID) {
	var table = document.getElementById(tableID);
	var rowCount = table.rows.length;
	for(var i=0; i<rowCount; i++) {
		var row = table.rows[i];
		var chkbox = row.cells[0].childNodes[0];
		if(null != chkbox && true == chkbox.checked) {
			if(rowCount <= 1) {               // limit the user from removing all the fields
				alert("Cannot Remove all the Books.");
				break;
			}
			table.deleteRow(i);
			rowCount--;
			i--;
		}
	}
}
</SCRIPT>
<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>

	<div style="border:auto solid 1px; font-size:15px; background-color:red; width:100%;">
    <form action="" enctype="multipart/form-data" id="pdf_form" method="post" name="pdf_form">

    	
      <table id="dataTable" class="form" border="1">
      <tbody>
    	<p>
    	<td >
    		<input type="checkbox" name="chk[]" checked="checked" />
    	</td>
    	<td>
    	<label for="title">Title of PDF</label>
    	<input type="text" id="title" name="title[]">

    	
    	<td>
    	<label for="pdffile">PDF supported. 2MB Maximum)</label>
    	<input type="file" id="pdffile" name="pdffile[]">
    	
    	</td>
    	
    	<td>
    	<label for="category">Category</label>
    	<select id="category" name="category[]"> 
        <option>Science</option>
        <option>Technology</option>
        <option>Biblical</option>
        <option>Business</option>
        <option>Medical</option>
        <option>Engineering</option>
        <option>World</option>
    	</select>
    	</td>
    	
    	</p>
      </tr>
     </tbody>
    </table>


    <p> 
      <input type="button" value="Add PDF" onClick="addRow('dataTable')" /> 
      <input id="button" name="submit" type="submit" value="Save PDF(s)" />
      
      <p>(All actions apply only to entries with check marked check boxes only.)</p>
    </p>
    </form>
    </div>

    <!-- //PHP for Upload -->



    <?php
    $con = mysqli_connect("localhost", "root","", "pdf") or die ("Error".mysqli_error($con));

if($_SERVER["REQUEST_METHOD"] == "POST") { 

    if(isset($_POST['submit']) && $_FILES['pdffile']['size'] > 0)
	{
        $fileName = $_FILES['pdffile']['name'];
        $tmpName  = $_FILES['pdffile']['tmp_name'];
        $fileSize = $_FILES['pdffile']['size'];
        $fileType = $_FILES['pdffile']['type'];

        $item_title = $_POST['title'];
		$item_category = $_POST['category'];

        for($count = 0; $count<count($item_title); $count++){
        	

        	  $title = mysqli_real_escape_string($con,$item_title[$count]);
			  $category = mysqli_real_escape_string($con,$item_category[$count]);
			  $pdfname = mysqli_real_escape_string($con, $fileName[$count]);  //document name
			  $tmpname = mysqli_real_escape_string($con, $tmpName[$count]);
			  $folder = "uploads/";

			  if(!get_magic_quotes_gpc())
		        {
		            $pdfname = addslashes($pdfname);
		        }

			  $doc_path = move_uploaded_file($tmpname, $folder.$pdfname);

			  $sql = "INSERT INTO zipcode (country, city, zipCode) VALUES('$title', '$category', '$pdfname')";

			  if ($con->query($sql) === TRUE) {
    			echo "<div style='border:auto solid 1px; font-size:15px; color:green; background-color:auto; width:100%;'> PDF with Title $title Added Successfully. </div>";
  			}
			  else {
			    echo "Error: " . $sql . "<br>" . $con->error;
			  };
        	}
        
    }    
}  


?>

</body>
</html>

【讨论】:

  • 我可以毫无问题地进行上传。但是,问题是与其他字段(由 Javascript 创建的记录集)一起上传,例如“标题[]”和“类别[]”。请检查我修改后的代码。谢谢。
  • 博卡雷。我希望你能帮忙,拜托。谢谢
  • @SamolinaOne 是不是用户上传pdf文件时给的标题和类别?
  • 是的,title[] 和 category[] 是用户给的。谢谢。
  • @SamolinaOne 我已经编辑了我上面的答案。看看它。我想这就是你要找的。​​span>
猜你喜欢
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 2023-03-14
  • 2011-03-25
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多