【问题标题】:PHP Dynamic Select Onchange NOT WORKINGPHP 动态选择 Onchange 不工作
【发布时间】:2018-01-02 13:32:18
【问题描述】:

我正在尝试进行动态选择,我在 stackoverflow 上尝试了一些示例,但它仍然无法正常工作..

我认为代码很简单..选择汽车的品牌,然后出现过滤后的车型..

我正在使用 joomla、jquery 和 php(它们都是最新版本)

<?php
defined('_JEXEC') or die;
$document = JFactory::getDocument();
$document->addScript("/media/jui/js/jquery.min.js");


//CONNECTION ON  BD IS WORKING NORMALLY
$db = JFactory::getDbo();

?>

<script type="text/javascript">
function ajaxModeloRequest(val)
{
 $.ajax({
 type: 'post',
 url: 'veiculomodelo.php',
 data: {
  get_marca:val
 },
 success: function (response) {
  document.getElementById("modelo").innerHTML=response; 
 }
 });
}

</script>


  
<span style="font-size: 15px;    font-weight: 500;    line-height: 18px;    margin-bottom: 8px;    text-transform: uppercase;">Marca</span>
<select id="marca" name="marca" class="inputbox" onchange="ajaxModeloRequest">
    <?php

    
    // Get a new JDatabaseQuery object
    $query = $db->getQuery(true);
    
                    
    
    // construindo query veiculo marca
    $query->select(array('id', 'marca'));
    
    $query->from($db->quoteName('#__veiculo_marca'));
    $query->where($db->quoteName('tipo_fk') .'=' . $db->quote('1'));
    
    // Reset the query using our newly populated query object.
    $db->setQuery($query);
    
    // Returns an indexed array of associated arrays from the table records returned by the query
    $results = $db->loadAssocList();
    
    foreach ($results as $row) :
      echo "<option value='" . $row['id'] . "'>" . $row['marca'] . "</option>";
    endforeach;
    
    
    ?>
</select>

<span style="font-size: 15px;    font-weight: 500;    line-height: 18px;    margin-bottom: 8px;    text-transform: uppercase;">Modelo</span>
<select id="modelo" name="modelo" class="inputbox">

</select> 

这就是被称为..file veiculomodelo.php的代码

<?php

defined('_JEXEC') or die;


$document = JFactory::getDocument();
$document->addScript("/media/jui/js/jquery.min.js");



if(isset($_POST['get_marca']))
{

    //conectando com o banco de dados para trazer os carros
    $db = JFactory::getDbo();
    
    // Get a new JDatabaseQuery object
    $query = $db->getQuery(true);


    $marca = $_POST['get_marca'];

    // construindo query veiculo modelo
    $query->select(array('id', 'modelo'));
    
    $query->from($db->quoteName('#__veiculo_modelo'));
    $query->where($db->quoteName('marca_fk') .'=' . $marca);
    
    // Reset the query using our newly populated query object.
    $db->setQuery($query);
    
    // Returns an indexed array of associated arrays from the table records returned by the query
    $results = $db->loadAssocList();

 while($row=mysql_fetch_array($find))
 {
  echo "<option>".$row['city']."</option>";
 }
 exit;

/*    
    foreach ($results as $row) :
      echo "<option value='" . $row['id'] . "'>" . $row['modelo'] . "</option>";
    endforeach;
*/
    //exit;
}
?>

就是这样..有人可以告诉我为什么它不起作用吗?

【问题讨论】:

    标签: php jquery select dynamic joomla


    【解决方案1】:

    作为其他人找到此线程的替代方法,您可以使用 RSForms Pro,它具有用于条件字段的内置接口并允许从数据库表中提取代码:

    https://www.rsjoomla.com/support/documentation/rsform-pro/custom-scripting/auto-populate-a-list-from-a-table.html

    对于多个过滤器,您可以将提交按钮更改为 NEXT 并将返回 URL 设置为同一页面,但使用所选值(即 site.com/myform?model={model:value}

    或者您在 javascript 中更改设置一个 onchange 以重新加载带有变量的窗口。

    然后对它们执行 $_GET 并将它们包含在数据库查询中以供后续下拉列表(如果已设置)。

    我喜欢这种方式,因为它与 Joomla 更好地集成了电子邮件功能、菜单项和模块,并且具有许多其他功能。

    【讨论】:

      【解决方案2】:

      您的 onchange 代码没有将值发送到函数。

      使用这个

      <select id="marca" name="marca" class="inputbox" onchange="ajaxModeloRequest(this.value);">
      

      在 ajax 调用上使用 jQuery.ajax 而不是 $.ajax

      【讨论】:

      • 您能分享页面网址或帖子中发送的值的截图吗?
      • www.autoam.com.br
      • 字段是marca(品牌)和modelo(模型)
      • 我刚刚更新了我的答案,网站上存在 javascript 问题
      • 使用 jQuery.ajax 而不是 $.ajax
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      相关资源
      最近更新 更多