Нужна ваша помощь и предложения, пожалуйста. У меня есть форма, которая отправляет данные в базу данных MySQL и изображения в базу данных + Sql. Проблема, с которой я столкнулся, заключается в том, что я могу успешно отправить данные с помощью метода, но не могу отправить изображения, потому что для этого требуется <form method="post" enctype="multipart/form-data" action="myFile.php">
. То же самое касается изображений. Я могу успешно отправить изображения на ftp, но тогда данные не будут опубликованы с использованием <form method="post" enctype="multipart/form-data" action="myFile.php">
.
Я испробовал все возможные методы, описанные в книге, и исследовал множество сайтов. Я пытался подойти к этому с помощью Ajax, Jquery (две формы, два действия и одна кнопка отправки). Пожалуйста, укажите мне правильное направление.
Мой код: Form.php (в настоящее время я сделал две формы):
<form method="post">
<input name="haz1" type="text" value="<?php echo $haz1; ?>">
<input name="haz2" type="text" value="<?php echo $haz2; ?>">
<input name="submit" type="submit" id="submit" value="SAVE FORM">
</form>
<form method="post" enctype="multipart/form-data" action="myFile.php">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input name="haz_img1" type="file" id="img" />
<br>
<input name="submit" type="submit" id="submit" value="SAVE FORM">
</form>
мой файл.php
<?php
require("../db.php");
$id =$_REQUEST['id'];
$result = mysql_query("SELECT * FROM haz3 WHERE id = '$id'");
$test = mysql_fetch_array($result);
if(!$result)
{
die("Error: Data not found..");
}
$haz_img1 = $test['haz_img1'];
$haz1 = $test['haz1'];
$haz2 = $test['haz2'];
if(isset($_POST['submit']))
{
$haz_img1_save = $_POST['haz_img1'];
$haz1_save = $_POST['haz1'];
$haz2_save = $_POST['haz2'];
$remote = "hazard-access/";
$target1 = $remote . basename( $_FILES['haz_img1']['name']);
$haz_img1 = ($_FILES['haz_img1']['name']);
move_uploaded_file( $_FILES['haz_img1']['tmp_name'], $target1 );
mysql_query("UPDATE haz3 SET haz_img1 = '$haz_img1_save',haz1 ='$haz1_save',haz2 ='$haz2_save' WHERE id = '$id'")
or die(mysql_error());
echo "";
}
mysql_close($conn);
?>
Я пытаюсь отправить данные и файлы вместе. Я не знаю, возможно ли это с одной формой или двумя формами, или я должен асинхронизировать через ajax.
Я попробовал этот подход:
function sendData()
{
var formData = new FormData(document.getElementById('form1'));
$.ajax({
url: 'h1_temp.php', //Server script to process data
type: 'POST', //POST or GET
xhr: function()
{ // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
data: formData, //form data
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});
}