2016-08-14 8 views
0

私はコードを書いたので、ユーザーは最初のドロップダウンで "クライアント名"を選択し、 "タグ"を選択して送信をクリックしてください。アウトプットとしてCSVを取得できません - PHP

ユーザが[送信]をクリックすると、選択した2つの基準に一致する値を持つCSVファイルが出力として取得されます。

出力としてCSVを取得できません。私は値を渡しながら何か間違ったことをしたと思う。助けてください。

メインページ上のコードは次のとおりです。get_CSV.php上

<html> 
<head> 
</head><?php include "connection.php"; ?> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.js"></script> 
<script> 
function getTag(val) 
{ 

    $.ajax({ 
     type: "POST", 
     url: "get_tag.php", 
     data: "ClientID="+val, 
     success: function(data){ 

      $("#Tag_List").html(data); 
     } 

    }); 
} 

function getCSV() 
{ 
var e = document.getElementById("Client-list"); 
var strClient = e.options[e.selectedIndex].value; 
var f = document.getElementById("Tag_List"); 
var strTag = f.options[f.selectedIndex].text; 
$.ajax({ 
     type: "POST", 
     url: "get_CSV.php", 
     data: "ClientID="+strClient + "Tag="+strTag, 
     success: function(){ 

      window.console.log('Successful'); 
      return false; 
     } 

    }); 
} 
</script> 
<body> 
<form> 
<label> Select Client Name </label> 
<Select id="Client-list" onChange="getTag(this.value)"> 
<option value="">Select Client</option> 
<?php 
$sql=" SELECT * FROM CLIENTDETAILS"; 
$result = $dbhandle->query($sql); 
while ($rs=$result->fetch_assoc()){ 
?> 
    <option value=" <?php echo $rs["ClientID"]; ?> "> <?php echo $rs["ClientName"] ?> </option> 
    <?php 
} ?> 
</Select> 
<label> Tag Name: </label> 
<Select id="Tag_List"> 
<option value=""> Select Tag</option> 
</Select> 
<button value="submit" onClick="return getCSV();">Submit</button> 
</form> 
</body> 
</head> 
</html> 

コードは次のとおりです。

<html> 
<?php 

define("HOSTNAME","localhost"); 
define("USERNAME","root"); 
define("PASSWORD",""); 
define("DATABASE","mydb"); 

$con=new mysqli(HOSTNAME,USERNAME,PASSWORD,DATABASE) or die("Unable to connect"); 

$query="SELECT * FROM listdetails WHERE ClientID='".$_POST["ClientID"]."' AND Tag='".$_POST["Tag"]."';" 

$result = mysqli_query($con, $query); 
$row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

$fp = fopen('file.csv', 'w'); 

foreach ($row as $val) { 
    fputcsv($fp, $val); 
} 

fclose($fp); 


?> 

</html> 

答えて

1

あなたはcsvファイルを送信しません。何かする必要がありますどのような点でそれをそうすることができます:

header('Content-Type: application/csv'); 
header('Content-Disposition: attachement; filename="filename.csv"'); 
echo file_get_contents('file.csv'); exit(); 
+0

私はこのダウンロード可能にする方法を理解しようとしています、コードをチェックする時間を話してくれてありがとう。 –

0

私は

function getCSV() 
{ 
//alert("Working"); 
var e = document.getElementById("Client-list"); 
var ClientID = e.options[e.selectedIndex].value; 
var f = document.getElementById("Tag_List"); 
var strTag = f.options[f.selectedIndex].text; 
$.post('get_CSV2.php',{postname:ClientID , posttag:strTag}, 
+0

私はCSVファイルを生成するようにコードを変更しました。コードは私のために働いています: –

0
<html> 
<?php 
include "connection.php"; 
$cli =$_POST['postname']; 
$tli =$_POST['postage']; 
//this could not be the best way to prevent SQL Injection , but it may help if you are new to, php like me:) 
$cid= substr($cli, 0, strpos($cli, ';')); 
$con = mysql_connect('localhost', 'root', '') or die (mysql_error()); 
$db = mysql_select_db("mydb", $con); 
$filename ='upload/'.strtotime("now").'.csv'; 
$fp= fopen($filename,"w"); 
$query="SELECT * FROM listdetails WHERE ClientID='".$cid."' AND Tag='".$tli."'"; 
$rows = mysql_query($query); 
while ($row = mysql_fetch_assoc($rows)) fputcsv($fp, $row); 
?> 
</html> 
をPASSE関数のコードを変更しました
関連する問題