ERP Dolibarr에서 수행중인 개발과 관련하여 도움이 필요합니다. ERP에서 새 제안을 만들 수 있습니다 (클래식 양식 사용). 이 양식에서 고객 이름, 고객 조회, 지불 모드 등을 정의 할 수 있습니다. 이미 작성된 다른 제안에서 내 보낸 정보로 해당 입력을 "자동으로"채울 필요가 있습니다. 예를 들어, 내 오퍼 1에 TOTO가 고객으로있는 경우 오퍼 1을 선택한 다음 고객 이름을 선택할 수 있으며 새 오퍼의 입력을 확인할 때 "토토"값이 채워집니다. 그 내가 사용했던 목적과 아약스 함수의 AJAX 함수가 select2-drop-mask 요소와 함께 작동하지 않습니다.
:$('#exportToNewPropal').on('click', function() {
//alert("j'ai cliqué sur le bouton !");
$.ajax({
dataType: "json",
url: 'propal.php',
type: 'GET',
data: "propalId=" + $('#propalSource').val() + "&propalOption=" + $('#propalOption').val(),
success: function (data) {
$.each(data.table, function (index, value) {
var valueName = value.nameElt;
switch ($("[Name=" + valueName + "]").prop('tagName')) {
case "SELECT":
console.log("c'est un select");
console.log("Le name de l'input select est " + valueName);
console.log("La valeur de l'input select est " + value.value);
$('select[Name=' + valueName + ']').val(value.value);
break;
case "TEXTAREA":
console.log("c'est un textarea");
console.log("Le name de l'input est " + valueName);
console.log("La valeur de l'input est " + value.value);
$('textarea[Name=' + valueName + ']').val(value.value);
break;
default:
console.log("c'est un input");
console.log("Le name de l'input est " + valueName);
console.log("La valeur de l'input est " + value.value);
$('input[Name=' + valueName + ']').val(value.value);
break;
}
});
}
})
});
내 문제는 내가 정보를 입력해야하는 입력 중 하나가 당신이 검색을 할 수있는 선택이며, 그 하나이다 내 코드 만 작동하지 않습니다. 여기
은 ERP에서 HTML의 : 난, 내 페이지 card.php에 첫째 :<div class="select2-drop select2-display-none select2-with-searchbox select2-drop-active" style="left: 512.5px; width: 100px; top: 254.438px; bottom: auto; display: block;" id="select2-drop">
<div class="select2-search">
<label for="s2id_autogen1_search" class="select2-offscreen"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" role="combobox" aria-expanded="true" aria-autocomplete="list" aria-owns="select2-results-1" id="s2id_autogen1_search" placeholder="" aria-activedescendant="select2-result-label-24">
</div>
<ul class="select2-results" role="listbox" id="select2-results-1">
<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
<div class="select2-result-label" id="select2-result-label-24" role="option"><span class="select2-match"></span></div></li>
<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
<div class="select2-result-label" id="select2-result-label-25" role="option"><span class="select2-match"></span>TEST</div></li>
<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
<div class="select2-result-label" id="select2-result-label-26" role="option"><span class="select2-match"></span>TIERS1</div></li>
<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
<div class="select2-result-label" id="select2-result-label-27" role="option"><span class="select2-match"></span>TIERS2</div></li>
<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation"><div class="select2-result-label" id="select2-result-label-28" role="option"><span class="select2-match"></span>TIERS3</div></li></ul></div>
편집 여기
내가 내 데이터를 얻을하고있어 개의 다른 단계이다 Dolibarr 구현 기능을 내 이벤트의 목록을 받고 :
페이지 card.php :
$list = $object->liste_array();
function func($x){
return $x;
}
$listPropal = array_map(func, $list);
,691,363 (210)
가 그럼 난 이벤트의 내 목록에 따라, 다른 제안에서 정보를 선택의 가능성을 추가하는 제안에 줄을 추가> $ listPropal :
페이지 card.php :
print '<tr><td>Proposition source</td><td colspan="2"><select name="propalSource" id="propalSource">';
print '<option value="0" selected> </option>';
foreach($listPropal as $elements){
print '<option value="' . $elements['id']. '">' . $elements['ref'] . '</option>';
}
print '</select> <select
name="propalOption" id="propalOption">
<option value="0"> </option>
<option value="ref_client">Référence client</option>
<option value="fk_soc">Tiers</option>
<option value="fin_validite">Durée de validité</option>
<option value="fk_cond_reglement">Conditions de règlement</option>
<option value="fk_mode_reglement">Mode de règlement</option>
<option value="fk_input_reason">Origine</option>
<option value="fk_availability">Délai de livraison</option>
<option value="fk_shipping_method">Méthode d’expédition</option>
<option value="date_livraison">Date de livraison</option>
<option value="note_public">Note publique</option>
<option value="note_private">Note privée</option>
<option value="type_presta">Type de prestation</option>
<option value="agence">Agence</option>
<option value="margin_rate_service">Taux de marge service</option>
<option value="margin_rate_product">Taux de marge produit</option>
</select> <input id="exportToNewPropal" type="button" class="button" value="Valider">';
내 아약스 함수는 propal.php 페이지를 호출합니다.이 페이지에서 데이터베이스에 대한 요소 이름과 입력 이름 사이의 연관 배열을 만들었고, 성공한 경우에는 내 입력 ("nameElt \ ": \"{$ array [$ propalOption]} \ "), 내 입력 (\"{$ propalOption} \ ", \"value \ ") 및 그 값 ("value \ ": \"{$ list_propal [0] [$ propalOption]} \ ").
페이지 propal.php :이 코드가 작동
$propalId = GETPOST('propalId');
$propalOption = GETPOST('propalOption');
$list_propal = $propalSource->liste_propal($propalId);
//Tableau associatif: nom dans la base de données => name de l'input
$array = array(
'ref_client' => 'ref_client' ,
'fk_soc' => 'socid',
'fin_validite' => 'duree_validite',
'fk_cond_reglement' => 'cond_reglement_id',
'fk_mode_reglement' => 'mode_reglement_id',
'fk_availability' => 'availability_id',
'fk_shipping_method' => 'shipping_method_id',
'date_livraison' => 'date_livraison',
'note_public' => 'note_public',
'note_private' => 'note_private',
'fk_input_reason' => 'demand_reason_id',
'margin_rate_service' => 'margin_rate_service',
'margin_rate_product' => 'margin_rate_product'
);
// IF SUCCESS SEND TO AJAX:
echo "{ \"table\": [";
if (array_key_exists($propalOption, $list_propal[0])){
echo "{ \"nameElt\":\"{$array[$propalOption]}\",\"attribute\": \"{$propalOption}\", \"value\" : \"{$list_propal[0][$propalOption]}\" }";
} else {
echo "{\"correspondance liste option\":aucune}";
}
echo "]}";
, 내가 특정 선택과를 제외한 모든 좋은 값 (위의 HTML 참조) 내 입력을 채울 것을 의미한다.
죄송합니다. 귀하의 목표가 무엇인지, 무엇이 잘못되었는지 이해할 수 없습니다. 올바른 값을 콘솔에 로그인 했습니까? 데이터에는 무엇이 들어 있습니까? SELECT 경우에는 어떤 요소에 대한 지정이 없다는 것을 알고 있습니까? 또한 HTML을 여러 줄로 올바르게 포맷 할 수 있습니까? –
@ 릴리 어떻게 작동하지 않는지 어떻게 알 수 있습니까 ?? <- 아마도 그 질문에 대한 대답은 당신의 게시물에 포함되어야합니다 ... 단순히 '그것이 효과가 없다'는 말은 누구에게 도움이되지 않는다는 것입니다, 그렇습니까? 선택 **의 어느 부분이 ** 작동하지 않는가? – ProEvilz
죄송합니다. select의 누락 된 코드를 편집했습니다.이 부분에 대한 사본이 작동하지 않았습니다. @ProEvilz : "작동하지 않는다"는 것은 위의 HTML을 제외한 모든 입력을 채울 수 있음을 의미합니다. 모든 입력/선택 및 테스크 테라 (texteras)가 작동합니다 (좋은 정보로 내보내기를 원하는 정보가 잘 채워집니다).하지만이 경우 아무 일도 없었습니다. 그것은 특별한 선택이기 때문입니다. 이제는 훨씬 더 명확 해지기를 희망합니다 ... – Lily