Skip to content

Commit 2e4ffbe

Browse files
committed
post params bug fixed + checked list names
1 parent c7a9430 commit 2e4ffbe

File tree

4 files changed

+31
-6
lines changed

4 files changed

+31
-6
lines changed

Ajax/common/html/traits/BaseHtmlEventsTrait.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,14 @@ public function getOnClick($url, $responseElement="", $parameters=array()) {
138138
}
139139

140140
public function postOn($event, $url, $params="{}", $responseElement="", $parameters=array()) {
141-
$parameters["params"]=$params;
141+
$allParameters=[];
142+
if(isset($parameters["params"])){
143+
$allParameters[]=JsUtils::_correctParams($parameters["params"]);
144+
}
145+
if(isset($params)){
146+
$allParameters[]=JsUtils::_correctParams($params);
147+
}
148+
$parameters["params"]=\implode("+'&'+", $allParameters);
142149
return $this->_ajaxOn("post", $event, $url, $responseElement, $parameters);
143150
}
144151

Ajax/common/traits/JsUtilsAjaxTrait.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@ abstract public function getUrl($url);
1919
abstract public function _add_event($element, $js, $event, $preventDefault=false, $stopPropagation=false,$immediatly=true);
2020

2121
protected function _ajax($method,$url, $params="{}", $responseElement="", $jsCallback=NULL, $attr="id", $hasLoader=true,$jqueryDone="html",$ajaxTransition=null,$immediatly=false) {
22-
if(JString::isNull($params)){$params="{}";}
2322
$jsCallback=isset($jsCallback) ? $jsCallback : "";
2423
$retour=$this->_getAjaxUrl($url, $attr);
2524
$responseElement=$this->_getResponseElement($responseElement);
2625
$retour.="var self=this;\n";
2726
if($hasLoader===true){
2827
$this->addLoading($retour, $responseElement);
2928
}
30-
$retour.="$.".$method."(url,".$params.").done(function( data ) {\n";
29+
$retour.="$.".$method."(url,".self::_correctParams($params).").done(function( data ) {\n";
3130
$retour.=$this->_getOnAjaxDone($responseElement, $jqueryDone,$ajaxTransition,$jsCallback)."});\n";
3231
if ($immediatly)
3332
$this->jquery_code_for_compile[]=$retour;
@@ -86,9 +85,19 @@ protected function _correctAjaxUrl($url) {
8685
return $url;
8786
}
8887

88+
public static function _correctParams($params){
89+
if(JString::isNull($params)){
90+
return "";
91+
}
92+
if(\preg_match("@^\{.*?\}$@", $params)){
93+
return '$.param('.$params.')';
94+
}
95+
return $params;
96+
}
97+
8998
protected function addLoading(&$retour, $responseElement) {
9099
$loading_notifier='<div class="ajax-loader">';
91-
if ($this->ajaxLoader=='') {
100+
if ($this->ajaxLoader==='') {
92101
$loading_notifier.="Loading...";
93102
} else {
94103
$loading_notifier.=$this->ajaxLoader;
@@ -469,7 +478,7 @@ private function _postForm($url, $form, $responseElement, $params=null,$validati
469478
$retour=$this->_getAjaxUrl($url, $attr);
470479
$retour.="\nvar params=$('#".$form."').serialize();\n";
471480
if(isset($params)){
472-
$retour.="params+='&'+$.param(".$params.");\n";
481+
$retour.="params+='&'+".self::_correctParams($params).";\n";
473482
}
474483
$responseElement=$this->_getResponseElement($responseElement);
475484
$retour.="var self=this;\n";

Ajax/semantic/html/collections/form/traits/CheckboxTrait.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ public function getHtmlCk(){
4646
return $this->content["field"];
4747
}
4848

49+
public function setName($name){
50+
$this->getDataField()->setProperty("name", $name);
51+
return $this;
52+
}
53+
4954
public function getDataField(){
5055
$field= $this->getField();
5156
if($field instanceof AbstractCheckbox)

Ajax/semantic/html/elements/HtmlList.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,14 @@ public function setHorizontal() {
100100
* @param string $notAllChecked
101101
* @return HtmlList
102102
*/
103-
public function addCheckedList($items=array(), $masterItem=NULL, $values=array(),$notAllChecked=false) {
103+
public function addCheckedList($items=array(), $masterItem=NULL, $values=array(),$notAllChecked=false,$name=null) {
104104
$count=$this->count();
105105
$identifier=$this->identifier . "-" . $count;
106106
if (isset($masterItem)) {
107107
if(\is_array($masterItem)){
108108
$masterO=new HtmlFormCheckbox("master-" . $identifier, @$masterItem[0],@$masterItem[1]);
109+
if(isset($name))
110+
$masterO->setName($name);
109111
if(isset($masterItem[1])){
110112
if(\array_search($masterItem[1], $values)!==false){
111113
$masterO->getDataField()->setProperty("checked", "");
@@ -128,6 +130,8 @@ public function addCheckedList($items=array(), $masterItem=NULL, $values=array()
128130
if (\array_search($val, $values) !== false) {
129131
$itemO->getDataField()->setProperty("checked", "");
130132
}
133+
if(isset($name))
134+
$itemO->setName($name);
131135
$itemO->setClass("item");
132136
$fields[]=$itemO;
133137
}

0 commit comments

Comments
 (0)