2017-07-27 52 views
1

我試圖做一個動態的選擇,我在這裏嘗試了一些例子對計算器,但它仍然沒有工作..PHP動態電平變化選擇不工作

我認爲代碼簡單..選擇品牌一輛汽車,然後將過濾車型出現..

我使用的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>

,這是被稱爲代碼..文件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; 
 
} 
 
?>

和多數民衆贊成它..誰能告訴我,爲什麼它不工作?

回答

1

There is a javascript issue on the site您的onchange代碼沒有將值發送給函數。

使用本

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

在Ajax調用使用jQuery.ajax代替$就

+0

仍然不能正常工作=/ –

+0

您可以分享正在郵寄中發送的值的頁面url或sreenshot嗎? –

+0

www.autoam.com.br –

0

至於其他的替代發現這個線程,你可以使用RSForms臨具有內置接口有條件的領域和允許代碼從數據庫表拉:

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更好地集成到了電子郵件功能,菜單項和模塊中,並且具有許多其他功能。