Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Je veux créer deux combobox liée "category" et "SubCategory".
Avec la requête ajax j'envoi le nom de la catégorie choisit a partir du premier combobox a l'action index, selon ce nom je récupère un tableau contenant les sous catégories, je veux donc insérer ses noms dans le 2ème combo box.
les combobox sont crées avec Zend_form
j'ai un autre problème lorsque je teste mon code juste en affichant le nom de la catégorie dans un div, toute la page se charge dans ce div.
Je serais très reconnaissance si vous pouvez m'aider.
Je poste mon code ci dessous:
Le formulaire:
<?php
class Application_Form_SearchProduct extends Zend_Form
{
public function init()
{
$this->setName("SearchProduct");
$a=new Application_Model_Class_Categories();
$this->setMethod('post');
/* Combo box Category*/
$this->addElement('Select', 'Category',array(
'label' => 'Category:',
'AutoComplete'=> true,
'MultiOptions' => $a->GetCategories(),
'required' => true ));
/* Combo box SubCategory*/
$this->addElement('Select', 'SubCategory',array(
'label' => 'Sub Category:',
'AutoComplete'=> true,
'required' => true ));
$this->addElement('submit', 'Search', array(
'required' => false,
'ignore' => true,
'label' => 'Search',
)); } }
?>
Le scrypte:
<script type="text/javascript">
//for send data i'll use jquery library
$(document).ready( function(){
$('#Category').change(function()
{
var message=$('#Category option:selected').text();
if (message != '') {
//run ajax
$.ajax({
type: "GET", // envoi des données en POST
url: 'http://localhost/EverTags1/Authentification1/public/Product',
data: {'message' : message},
cache: false,
success: function (respond) {
//$("#menuLeft").html(respond);
$("#SubCategory").add(respond);
}
})
; }});});
</script>
et mon action:
public function indexAction()
{
$form = new Application_Form_SearchProduct();
$this->view->form = $form;
$b=new Application_Model_Class_SubCategories();
$message = $_GET['message'];
$result = $b->GetSubCategories($message );
echo($result[0]) ;
}
Hors ligne
j'ai trouver pourquoi toute la page se charge dans le div c'est parce que le résultat de la requête ajax est le code HTML de toute la page comment je fait pour renvoyer juste les donner que je veux
Hors ligne
enfin j'ai trouvé la solution je la met ci dessous en espérant quelle sera utile pour d'autre personne
Le scripte:
<script type="text/javascript">
//for send data i'll use jquery library
$(document).ready( function(){
$('#Category').change(function()
{
var message=$('#Category option:selected').text();
if (message != '') {
$.ajax({
type: "GET", // envoi des données en POST
dataType : 'json',
url: //baseurl+"Product/index",
'http://localhost/EverTags1/Authentification1/public/Product/index',
async: false,
data:{"message" : message},
success:
function (respond) {
var json=JSON.stringify(respond);
var objet = eval('(' + json + ')');
e=objet.length;
var str = "";
for ( var count = 0 ; count < e; count++ ) {
str += "<option value='" + count + "'>" + objet[count].name+ "</option>"
}
$("#SubCategory").empty().append(""+str);
}
}
);
}});});
</script>
et l'action:
public function indexAction()
{
$form = new Application_Form_SearchProduct();
$this->view->form = $form;
if($this->_request->isXmlHttpRequest()) {
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
$message = $_GET['message'];
$soap_client = new nusoap_client('http://127.0.0.1/evertags/GetCategorySubCategories/servSubCategories.php?wsdl','true');
$proxy = $soap_client->getProxy();
$result= $proxy->ReturnSubCategoriesNames($message);
echo $result;
}
Hors ligne
Bobu a écrit:
Merci pour le feedback !
N'hésite pas à checker Zend_Soap pour t'éviter une librairie supplémentaire pour le Webservice client .
A+
Bonsoir Mr Bobu, j'ai pas compris votre remarque pourriez vous m'expliquer qu'est ce que vous voulez dire.
Hors ligne
Pages: 1