MySQL データベースにデータを追加する小さな PHP スクリプトを作成しています。私はjQueryを使用して、テキストデータを処理中のPHPファイルに送信しています。これにより、データがMySQLデータベースに入れられ、その部分は問題なく動作します。
しかし、この同じ形式で、ファイルをサーバー内のフォルダーにアップロードし、そのパスまたはファイル名をデータベース列「Img」に保存する必要があります。
Stack サイトを検索しましたが、これを行う方法の手がかりが得られませんでした。jQuery でこれができない場合は、テキスト送信部分を失うことなくこれをアーカイブする方法を教えてください。ここにコードをリストします。
私のプロセスPHP:
include ('connect.php');
$data = ("SELECT * FROM poiinfo");
$poiName = $_REQUEST['Name'];
$poiDes = $_REQUEST['Descrip'];
$poiCon = $_REQUEST['ConInfo'];
/*$poiImg = $_REQUEST['Image']; */ <-- my Image data but this is not the way need correct this
$dbData = "INSERT INTO poiinfo(`Name`, `Des.`, `Contact`) VALUES ('$poiName','$poiDes','$poiCon')";
$putData = mysql_query($dbData);
if ($putData){
echo "Data inserted";
}else {
echo "Not Done";
}
私のフォーム:
<?php
/**
* @author SiNUX
* @copyright 2013
*/
include ('connect.php');
$lastId = mysql_query("SELECT ID FROM poiinfo ORDER BY ID DESC LIMIT 1");
if ($row = mysql_fetch_array($lastId)){
$nId = $row['ID'];
$nId == "0";
$nId = $nId++;
mysql_quary("INSERT INTO poiinfo ('ID') VALUES ('$nId')");
}else {
$lId = $row['ID'];
$lId = $lId + 0;
$lId++;
$tId = $lId;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#save_data").click(function(){
var name = document.getElementById("Name").value;
var desc = document.getElementById("Descrip").value;
var con = document.getElementById("ConInfo").value;
var dataString = 'Name='+name+'&Descrip='+desc+'&ConInfo='+con;
$.ajax({
type:'POST',
data:dataString,
url:'AddPoiPro.php',
success:function(data){
if(data="Data inserted") {
//alert("Data Success");
document.getElementById('msg').innerHTML= "<div style=\"background-color:#0F0; text-align:center; color: #060\">Data Saved</dive>";
$('#msg').delay(1500).fadeOut();
} else {
//alert("Not Inserted");
document.getElementById('msg').innerHTML= "<div style=\"background-color:#0F0; text-align:center; color: red\">Data Not Saved</div>";
}
}
});
});
});
</script>
<title>AddPOI</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" name="form1" id="form1">
<p>
<label for="poiid">ID :</label>
<input type="text" name="poiid" id="poiid" readonly="readonly" style="width:70px;" value="<?php echo $tId; ?>" />
</p>
<p>
<label for="Name">POI Name :</label>
<input type="text" name="Name" id="Name" />
</p>
<p>
<label for="Descrip" style="alignment-adjust:middle">POI Description :</label>
<textarea name="Descrip" id="Descrip" cols="45" rows="5"></textarea>
</p>
<p>
<label for="ConInfo">Contact Infomation :</label>
<textarea name="ConInfo" id="ConInfo" cols="45" rows="5"></textarea>
</p>
<p>
<label for="Img">POI Image :</label>
<!--<input type="file" name="Image" id="Image" /> --> <-- File upload place but for now it's commented out.
</p>
<p><div id="msg"></div></p>
<p>
<div align="center">
<input type="button" name="Submit" id="save_data" value="Submit" style="width:100px;" />
<input type="reset" name="reset" id="reset" value="Rest Data" style="width:100px;" />
</div>
</p>
</form>
</body>
</html>
ほとんどの投稿で私が言ったように、AJAXまたはjQueryがファイルのアップロードを処理できないことがわかったので、それを行う方法があれば教えてください。
また、皆さんはコーディングの第一人者です。私はただのバッタなので、これは良いコーディングですか、それとも自分のスタイルをさらに改善する必要がありますか。また、上記の形式では、ヘッダーに ajax 部分があり、それを別のファイルに移動する必要があります。フォームにリンクします。