php - 在joomla中,如何使用表单通过ajax返回文章中的动态内容

标签 php javascript ajax joomla module

我想将模块中的 ajax 表单的结果输出到当前显示的文章中。下面是我想要完成的任务的屏幕截图。我想通过 ajax 从模块(在 sidebarA 中)输入表单来修改文章中的 mysql 查询。

enter image description here

以下是通过 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" . $row['desc'] . "&nbsp;&nbsp;" . $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/

相关文章:

php - Wamp 服务器 - curl 不起作用

javascript - 为什么 `ng-checked` 不能与 `ng-change` 一起使用?

java - Servlet 无法从数据库中提取值

javascript - Ajax 表单无法与 jquery 附加一起使用

javascript - 为什么使用 JavaScript 变量返回零 strtotime?

php - Paypal api 将产品插入数组

php - Redhat php-apd安装

javascript - 使用 jQuery 选择带有变量的 id

javascript - 运行 npm start 命令后应用程序崩溃

javascript - 在 Javascript 中读取/加载 JSON WHERE 'id' = 'x'