我正在尝试使用Ajax将可变的“ id”发布到另一个php页面。
在名为“ export.php”的第二个php页面中,我需要使用此变量来查询MySql表并将结果显示在html表中。
但是它似乎不起作用,似乎在export.php上未设置变量。 你能帮我吗?
<script>
$('#btn_report').click(function(){
if(confirm("Are you sure?")) {
var id = [];
$(':checkbox:checked').each(function(i){
id[i] = $(this).val();
alert (id[i]); //this is correctly printed
});
if(id.length === 0) {
alert("No record selected");
}
else {
$.ajax({
url:'export.php',
type:'POST',
data:{id:id},
});
}
}
else {
return false;
}
});
</script>
export.php
所以问题是“ if(isset ...”返回false,并在此代码的底部显示else警报。
<html lang="en">
<head>
<title>Export</title>
</head>
<body>
<?php
$connect = mysqli_connect('localhost', 'user', 'pass', 'db' );
if(isset($_POST["id"])){
echo 'break1';
foreach($_POST["id"] as $id) {
$sel = "SELECT * FROM `user_details` WHERE `Codice prodotto` = $id";
echo $sel . "<br>";
$res = mysqli_query($connect, $sel);
echo "<table border='1'>
<tr>
<th></th>
<th>Codice prodotto</th>
<th>Relazione tecnica</th>
<th>Modello offerto</th>
<th>Descrizione</th>
<th>Immagine</th>
<th>Tipologia di Ancoraggio</th>
<th>Design</th>
<th>Illuminazione</th>
<th>FSP</th>
<th>DATI TECNICI</th>
<th>Dissolvenza delle ombre</th>
</tr>";
while($row = mysqli_fetch_array($res))
{
echo '<tr id="' . $row['Codice prodotto'] . '">';
echo '<td><input type="checkbox" name="codice[]" class="delete_prodotto" value="' . $row['Codice prodotto'] . '"></td>';
echo "<td>" . $row['Codice prodotto'] . "</td>";
echo "<td>" . $row['Relazione tecnica'] . "</td>";
echo "<td>" . $row['Modello offerto'] . "</td>";
echo "<td>" . $row['Descrizione'] . "</td>";
echo "<td>" . $row['Immagine'] . "</td>";
echo "<td>" . $row['Tipologia di Ancoraggio'] . "</td>";
echo "<td>" . $row['Design'] . "</td>";
echo "<td>" . $row['Illuminazione'] . "</td>";
echo "<td>" . $row['FSP'] . "</td>";
echo "<td>" . $row['DATI TECNICI'] . "</td>";
echo "<td>" . $row['Dissolvenza delle ombre'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
}
else {
echo "no value";
}
?>
</body>
</html>
答案 0 :(得分:0)
请使用 type 属性代替ajax方法中的method。这是错误的。
$('#btn_report').click(function () {
if (confirm("Are you sure?")) {
var id = [];
$(':checkbox:checked').each(function (i) {
id[i] = $(this).val();
alert(id[i]); //this is correctly printed
});
if (id.length === 0) {
alert("No record selected");
} else {
$.ajax({
url: 'export.php',
type: 'POST',
data: {id: id},
});
}
} else {
return false;
}
});
答案 1 :(得分:0)
在export.php文件中尝试执行此操作,删除所有html代码,因为您仅回显以发送回结果,如果需要添加html,则必须将其与结果连接起来,然后回显结果。
<?php
if(isset($_POST["id"])){
echo 'it works';
}else{
echo 'not worked';
}
?>
并查看是否在控制台中得到响应,请更改ajax代码以进行测试
$.ajax({
url: 'export.php',
type: 'POST',
data: {id: id},
success: function(response) {
console.log(response);
}
});
更多说明 当您回响ajax请求时,它会将响应发送回浏览器。 因此,您应该做的是准备一个结果字符串,并在对该字符串执行任何类型的处理之后,将所需的所有数据存储在响应中,当您准备发送响应时,您只需回显该字符串然后退出即可; 下面我尝试修复您的代码,希望它可以帮助您理解。
<?php
$connect = mysqli_connect('localhost', 'user', 'pass', 'db' );
if(isset($_POST["id"])){
$result = '';
// echo 'break1';
foreach($_POST["id"] as $id) {
$sel = "SELECT * FROM `user_details` WHERE `Codice prodotto` = $id";
// echo $sel . "<br>";
$res = mysqli_query($connect, $sel);
$result .="<table border='1'>
<tr>
<th></th>
<th>Codice prodotto</th>
<th>Relazione tecnica</th>
<th>Modello offerto</th>
<th>Descrizione</th>
<th>Immagine</th>
<th>Tipologia di Ancoraggio</th>
<th>Design</th>
<th>Illuminazione</th>
<th>FSP</th>
<th>DATI TECNICI</th>
<th>Dissolvenza delle ombre</th>
</tr>";
while($row = mysqli_fetch_array($res))
{
$result .= '<tr id="' . $row['Codice prodotto'] . '">';
$result .= '<td><input type="checkbox" name="codice[]" class="delete_prodotto" value="' . $row['Codice prodotto'] . '"></td>';
$result .= "<td>" . $row['Codice prodotto'] . "</td>";
$result .= "<td>" . $row['Relazione tecnica'] . "</td>";
$result .= "<td>" . $row['Modello offerto'] . "</td>";
$result .= "<td>" . $row['Descrizione'] . "</td>";
$result .= "<td>" . $row['Immagine'] . "</td>";
$result .= "<td>" . $row['Tipologia di Ancoraggio'] . "</td>";
$result .= "<td>" . $row['Design'] . "</td>";
$result .= "<td>" . $row['Illuminazione'] . "</td>";
$result .= "<td>" . $row['FSP'] . "</td>";
$result .= "<td>" . $row['DATI TECNICI'] . "</td>";
$result .= "<td>" . $row['Dissolvenza delle ombre'] . "</td>";
$result .= "</tr>";
}
$result. = "</table>";
}
}
else {
$result = "no value";
}
echo $result;
exit;
?>