我想将模块中的 ajax 表单的结果输出到当前显示的文章中。下面是我想要完成的任务的屏幕截图。我想通过 ajax 从模块(在 sidebarA 中)输入表单来修改文章中的 mysql 查询。
以下是通过 jumi 从模块截取的一些表单代码:
<form action="http://fsdsonline.com/menumanager/index.php/menustab/all-meals/77-component-menus/124-alcohol-n" method="post">
<option value="AND plate = '1'">Plate FSDS only</option>
<option value="AND plate = '1'">Prep FSDS only</option>
<option value="">Plate and Prep FSDS</option>
</select><br /><select style="font-size: 12px;" name="menu">
<option value="">All Meals</option>
<input style="font-size: 12px;" onclick="location=document.menuselector.menu.options[document.menuselector.menu.selectedIndex].value;" type="button" value="Show" /></form>
<div class="success" style="display: none;">View your menu</div>
这是来自 jumi 的文章中的 php 代码。
mysql_connect($hostname,$username, $password) OR DIE ('Unable to
connect to database! Please try again later.');
mysql_select_db($dbname);
$plateprep = $_POST['plateprep'];
$meal = $_POST['meal'];
$pub = $_POST['pub'];
$avocado = $_POST['avocado'];
$alcohol = $_POST['alcohol'];
$result = mysql_query("SELECT catnum, ctgry, Shrt_Desc, `desc`, ROUND(`Energ_Kcal`*`yield`*`qty` ) AS `cal` FROM allinnot a
LEFT JOIN allinfsds b
ON a.`NDB_No2` = b.id1
LEFT JOIN fdcat h ON b.product_type = h.unik
LEFT JOIN allinnot2 g ON a.`NDB_No2` = g.NDB_No
LEFT JOIN allincomp j ON a.`NDB_No2` = j.fsds_num
WHERE `own_id` = $user->id $plateprep $pub $meal $avocado $alcohol
ORDER BY `catnum`, `order`");
$cat = null;
$first = true;
while ($row = mysql_fetch_array($result)) {
if ($row['catnum'] != $cat) {
if (!$first) {
echo '</table>'; // close the table if we're NOT the first row being output.
}
$first = false; // no longer the first table, so disable this check.
echo '<p style="line-height: 12pt; font-size: 12pt;"><strong>' . $row['ctgry'] . '</strong></p>';
echo '<table>'; // start new table
$cat = $row['catnum'];
}
echo "<tr><td>" . $row['Shrt_Desc'] . "</td><td> " . $row['desc'] . " " . $row['cal'] . " cal</td></tr>";
}
?>
</table>
</body>
</html>
我认为我已经正确编码了查询,并且表单看起来不错,但是如何通过 ajax 连接两者? 谢谢!!
最佳答案
恐怕我对朱米不熟悉。
通常,要执行 ajax 请求,您的 javascript 文件将向特定的 php 文件发出 ajax 请求。如果您要使用 ajax,则需要以某种方式在表单中触发此操作。 php 文件应该将您想要的信息回显到发出 ajax 请求的文件。
在这种情况下,我认为ajax请求必须转到您嵌入了jumi的页面,但我不确定。
如果你打算使用ajax,那么我建议使用jquery来完成它。它让生活变得更加轻松。下面是使用 jquery 发出的简单 ajax 请求的示例。
$.ajax({
type: "POST",
url: "joomla_page.php",
data: { 'menu': menu },
success: function(){
informationfromphp= data.menu; //This is $menu echod from php
$('#menuid').html('<span class="food_results">Success!</span>');
}
})
在你的 php 代码中,使用类似这样的内容捕获 ajax 消息
if (isset($_GET['menu'])) {
//do something ;
}
然后在 php 中执行一些操作(例如调用数据库)。之后,您可以使用 echo 将信息从 php 返回到 ajax 文件。
echo $menu;
请注意,这不是一个可行的示例,它只是一个入门的粗略想法。您会在 stackoverflow 上找到大量其他示例。
关于php - 在joomla中,如何使用表单通过ajax返回文章中的动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10166046/