我有一个简单的表单(从php查询生成),它通过POST将数据发送到php脚本。用户选择复选框选项,并在提交php脚本时制作自动下载的制表符分隔文件。它适用于所有浏览器,除了android股票浏览器。转储$ POST显示没有数据。 有这个想法/经验吗?
这会发送数据:
<form name='myForm' action="">
<input type='text' id='serial' placeholder="Serial number" required/>
<br />
<br />
<input class="FooTrigg" data-trigger="footable_initialize" type='button' onclick='showPart(FooT)' value='Search'/>
</form>
此脚本将其发布到php并将其检索回原始页面:
//Browser Support Code
function showPart(callback){
var ajaxRequest; // The variable that makes Ajax possible!
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200){
var ajaxDisplay = document.getElementById('PartList');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
// To reinitialize table after it's loaded with data callback is added
callback();
}
}
// Now get the value from page and pass it to server script.
var serial = document.getElementById('serial').value;
ajaxRequest.open('POST', "../includes/getpart.php");
ajaxRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajaxRequest.send("serial=" + serial);
}
//When callback is returned FooT is executed after showPart
function FooT() {
$('table').trigger('footable_initialize');
$('table').trigger('footable_expand_first_row');
}
这是由php生成的表单:
//form
echo "<form id='send_parts' name='send_parts' method='post' action='../includes/generatetab.php'>";
//Table header
echo "
<table>
<tr>
<th>Part</th>
<th>PN</th>
<th>Manufactured</th>
<th>Serial</th>
<th>Site</th>
<th>Date replaced</th>
<th>By user</th>
<th>Faulty</th>
<th>Select</th>
</tr>";
//Retrieved data
while ($row = mysqli_fetch_array($query)) {
echo "<tr>";
echo "<td>" . $row['part_type'] . "</td>";
echo "<td>" . $row['pn'] . "</td>";
echo "<td>" . $row['manufactured'] . "</td>";
echo "<td>" . $row['serial'] . "</td>";
echo "<td>" . $row['site_id'] . "</td>";
echo "<td>" . $row['date'] . "</td>";
echo "<td>" . $row['user'] . "</td>";
echo "<td>" . $row['faulty'] . "</td>";
echo "<td><input type='checkbox' name='send_parts[]' class='checkclass' value=" . $row['id'] . "></td>";
echo "</tr>";};
echo "</table>";
echo "</br>";
echo "<input type='submit' name='submit' value='Generate tab' />";
echo "</form>";
exit();
这是用于生成文件的php脚本:
//Generate headers
echo "Part";
echo chr(9);
echo "Serial";
echo chr(9);
echo "Site";
echo chr(9);
echo "Date";
echo chr(9);
echo "User";
echo chr(9);
echo "Log";
echo chr(9);
echo chr(13);
echo chr(10);
//Generate tab delimited text
echo "Dump: ";
var_dump($_POST);
if (!empty($_POST['send_parts'])){
foreach ($_POST['send_parts'] as $send_parts){
$getchecked = mysqli_query($con, "SELECT * FROM $storage WHERE id=$send_parts");
while ($row = mysqli_fetch_array($getchecked)) {
echo $row['part_type'];
echo chr(9);
echo $row['serial'];
echo chr(9);
echo $row['site_id'];
echo chr(9);
echo $row['date'];
echo chr(9);
echo $row['user'];
echo chr(9);
echo $row['log'];
echo chr(9);
echo chr(13);
echo chr(10);
};
} exit ();
} else {
echo "Nothing was selected, please try again!";
}
在Android股票浏览器中,我得到带标题的制表符分隔文件,我总是得到:没有选择,请再试一次! dump $ post显示array-&gt; 0。