ONChange Event ..pls Help... July 11, 2020, 09:41:04 AM Hi,I have a 2 fields in a Table: CODE and NAME; I want when I SELECT field CODE in the ADD Page to be auto-populated the field NAME. How do I do that ? I figure out the event OnChange can do the trick but i do not have samples of code to write.. To easy understand: I SELECT "COD_PROJECT" (from table PROJECTS) I need to be AUTOCOMPLETED the field "Name_ProJect" (from table PROJECTS). Now I have created a dependent field and I have to choose it ...but is not user friendly...Can someone help ?Thanks in advance !(PS: I tried to add a screen capture but I received the message: "There was a problem during the uploading of CODPROIECT.PNG.The upload directory is full. Please contact an administrator about this problem") Regards & Thanks Quote Selected Last Edit: July 11, 2020, 10:43:16 AM by Catalin
Re: ONChange Event ..pls Help... Reply #1 – July 13, 2020, 10:23:46 AM @Catalin your question will be answered here https://phprad.com/forum/index.php?topic=1012.0 Quote Selected
Re: ONChange Event ..pls Help... Reply #2 – July 21, 2020, 07:56:52 PM Hi Wilvin, for mu simply don't work.I have a table Budgets with 2 fields:Cod_Proiect Nume_Proiect...both fields should come from my Table name: PROIECTE) (n.b. PROJECTS in english)When I select Cod_Proiect i want to query database -> table: PROIECTE to obtain "Nume_Proiect" coresponding to Cod_Proiect (which is Unique inside the table per record).No error in LOG ...no effect on app; I followed your suggestions from the post:---------On-Change code for FIELD Cod_Proiect is:$('#ctrl-COD_Proiect').on('change', function(){ let codproiect = $(this).val(); sendData(codproiect);});function sendData(codproiect){ var data = {// We are trying to organize our data for the server proiect: codproiect } //We now make an ajax post to the server var request = $.ajax({ type: 'POST', // the type of request we are making. url: siteAddr+'api/getGoals/?csrf_token='+csrfToken, //our api link/url data: data, // the data we are sending to the server cache: false, // we dont want the request to be cached. }); // Now we check for response that will be gotten from the server. // Callback handler that will be called on success request.done(function (response, textStatus, jqXHR){ $('#ctrl-Nume_Proiect').val(response.data.Nume_Proiect); }); // Now we check for errors we get when trying to make our post request. request.fail(function (jqXHR, textStatus, errorThrown){});}------Code from ApiController.php is:<?php/** * Info Contoller Class * @category Controller */class ApiController extends BaseController{ /** * call model action to retrieve data * @return json data */ function json($action, $arg1 = null, $arg2 = null) { $model = new SharedController; $args = array($arg1, $arg2); $data = call_user_func_array(array($model, $action), $args); render_json($data); } // Start functie GETGOALS function getGoals(){ if(!empty($_POST)){ // we check if the post variable is not empty. $proiect = $_POST['proiect']; // pass the proiect to our variable $proiect $db = $this->GetModel(); $db->where("Cod_Proiect", $proiect); $done = $db->getOne("proiecte"); // get our data from database if($done) { // checks if it was successful or not $res['success'] = true; $res['msg'] = "Action Successfully."; $res['data'] = $done; } else{ $res['success'] = false; $res['msg'] = "Eroare citire NUME proiect."; } render_json($res); // we return result of the update query in JSON format as expected. } else { $res['success'] = false; $res['msg'] = "No post data detected."; render_json($res); // here we return access denied if Csrf fails } } // End functie GETGOALSFinally I'm doing something wrong but I can not figure-out what: what is wrong ? Is there a possibility to activate LOG for any error ? Quote Selected
Re: ONChange Event ..pls Help... Reply #3 – August 04, 2020, 06:46:23 AM Hi, finally worked for me, but I discovered a "trick" it is not a "bug":- if you reuse the function:function sendData(codproiect) { var data = {// We are trying to organize our data for the server proiect: codproiect }in another on-change event: will messup and will not work: first function encountered will RUN.- so function "sendData" should have an unique name per each on-change event: e.g. sendProductId, sendStudentName, etc.All the best and a big hug Willvin for helping me !PS: On-change event It is not working in EDGE Browser: trigger an error. Chrome is working. Quote Selected Last Edit: August 04, 2020, 07:00:21 AM by Catalin
Re: ONChange Event ..pls Help... Reply #4 – August 04, 2020, 08:07:06 PM @Catalin please make sure to hard-reload the page or clear your browser cache, that should be the culprit. Quote Selected 1 Likes
Re: ONChange Event ..pls Help... Reply #5 – August 05, 2020, 04:15:00 PM Again you are right: I forgot to clear cache !!! ...after clear cache worked in Edge also. Thanks!!! Quote Selected
Re: ONChange Event ..pls Help... Reply #6 – August 26, 2020, 08:53:41 AM Sorry to say but is a NASTY BUG related with this feature, as follow:1) In the PAGE-SCRIPTS.JS in case an event is sent to server al the time is written in the JS file as:$('#ctrl-Field_Name').on('change', function(){ ...}but WITHOUT "Table_Name" and this will duplicate the functions in JS file, because SAME FIELD named "ctrl-Field_Name" may appear in several Tables with different functions... 2) In this regard, you receive random-values depending on which function is executed.Is a nasty bug !Correct call into the PAGE-SCRIPTS.JS for the function should be written as:$('#ctrl-Table_name.Field_Name').on('change', function(){ ...}This is a VERY USEFUL functionality, please do a work around ...and let me know To better understand I'm giving you bellow a sample code from the Application.;$('#ctrl-Cod_Unic_Linie_Buget').on('change', function(){ let Cod_Unic_Linie_Buget = $(this).val(); sendCimLinieBugetProiect(Cod_Unic_Linie_Buget);});function sendCimLinieBugetProiect(Cod_Unic_Linie_Buget){ var data = {// We are trying to organize our data for the server codliniebuget: Cod_Unic_Linie_Buget } //We now make an ajax post to the server var request = $.ajax({ type: 'POST', // the type of request we are making. url: siteAddr+'api/getLinieBugetProiect/?csrf_token='+csrfToken, //our api link/url data: data, // the data we are sending to the server cache: false, // we dont want the request to be cached. //dataType: 'json' //the type of data we expect our api to return. }); // Now we check for response that will be gotten from the server. // Callback handler that will be called on success request.done(function (response, textStatus, jqXHR){ $('#ctrl-Categorie').val(response.data.Nume_cat_cheltuiala_eligibila); $('#ctrl-Subcategorie').val(response.data.Nume_subcat_cheltuiala_eligibila); }); // Now we check for errors we get when trying to make our post request. // Callback handler that will be called on failure request.fail(function (jqXHR, textStatus, errorThrown){ // Log the error to the console console.error( "The following error occurred: "+ textStatus, errorThrown ); });}$('#ctrl-Cod_Unic_Linie_Buget').on('change', function(){ let Cod_Unic_Linie_Buget = $(this).val(); sendLinieBugetProiect(Cod_Unic_Linie_Buget);});function sendLinieBugetProiect(Cod_Unic_Linie_Buget){ var data = {// We are trying to organize our data for the server codliniebuget: Cod_Unic_Linie_Buget } //We now make an ajax post to the server var request = $.ajax({ type: 'POST', // the type of request we are making. url: siteAddr+'api/getLinieBugetProiect/?csrf_token='+csrfToken, //our api link/url data: data, // the data we are sending to the server cache: false, // we dont want the request to be cached. //dataType: 'json' //the type of data we expect our api to return. }); // Now we check for response that will be gotten from the server. // Callback handler that will be called on success request.done(function (response, textStatus, jqXHR){ $('#ctrl-Categorie').val("Something Else"); $('#ctrl-Subcategorie').val("Random text"); Quote Selected
Re: ONChange Event ..pls Help... Reply #7 – August 27, 2020, 05:56:48 PM @Catalin a workaround for that will be to edit the page as a Custom by clicking on the custom checkbox and then change the input id to something unique and then add you js code to Custom JS. Quote Selected