我有一个小的ajax php应用程序,它将mysql db中的数据输出到表中。行是链接,单击时将调用ajax函数,该函数将调用另一个php文件,该文件在不重新加载页面的情况下从图层中的同一数据库显示不同的查询。
我想知道如何在两个php文件之间同步查询。因此,当我单击基页中的某一行时,该图层将被展开以包含其他信息,或者实际上是整个查询。
我想我可以通过在表的第一个查询中使用主键来实现这一点,但是我不希望它显示出来并且想知道是否有更好的方法来解决这个问题?
答案 0 :(得分:2)
使用jQuery非常简单,我肯定会建议在ajax调用等中使用它。假设你有一个这样的表格;
<table>
<?php
// I'm using mysqli class by the way.
$ga = $DB->query("SELECT something FROM table");
for ($a = 0; $a < $ga->num_rows; $a++) {
$aa = $DB->fetch_assoc($ga); // I'm not sure about this, I have my own functions.
echo "
<tr class="clickable" id="<?=$aa["Id"] ?>">
<td>".$aa["NameOfColumn"]."</td>
</tr>
";
}
?>
</table>
和javascript部分;
<script type="text/javascript">
$(document).ready(function() {
$(".clickable").on("click", function() {
// Get our row Id from the rows "id" attribute.
$id = $(this).attr("id");
alert($id);
});
</script>
您必须更改需要执行的操作,而不是显示警报。对于初学者,我建议使用预加载的div,并在使用它时改变其内容,如;
<div id="displayData" style="display: none;"> </div>
对于JS函数,您可以像使用它一样使用它;
$("#displayData").html($id).css("display","block");
示例众多,你应该找到最适合你的。
答案 1 :(得分:1)
你可以按照以下方式进行
答案 2 :(得分:0)
您不希望它显示,这是否意味着安全问题或其他问题。
如果您想丢失表中的主键,可以使用放置在会话对象中的查询缓存,然后按位置在数组中进行检索。
所以类似于: 第1页:
第2页:
的数据
答案 3 :(得分:0)
处理此问题的最佳和最简单的方法如下:
答案 4 :(得分:0)
答案 5 :(得分:0)
<?php
if (isset($_POST['submit'])) {
$myFile = "/posts/edit/644203";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = stripslashes($_POST['sf']);
fwrite($fh, $stringData);
fclose($fh);
('Location: edit.php?a=done');
}
?>
<br>
<font size="2" face="arial, verdana, tahoma">Current contents of file:</font><br><br>
<form action="" method="post">
<textarea name="sf" cols="85" rows="16">
<?php
$myFile = "/posts/edit/644203";
$fh = fopen($myFile, 'r');
$theData = fgets($fh);
fclose($fh);
echo $theData;
?></textarea>
<br />
<input type="submit" name="submit" value="Save & Upload" />
</form>
<?php
if ($_GET['a'] == 'done') {
echo 'The file was saved and now it says:<br /><br />';
$myFile = "/posts/edit/644203";
$fh = fopen($myFile, 'r');
$theData = fgets($fh);
fclose($fh);
echo $theData;
}
?>