jquery – Replace Source query string value without redirecting

If you are working with browsers that support the HTML5 History API, you could use replaceState:

$(document).ready(() => {
    var redirectUrl = _spPageContextInfo.webAbsoluteUrl + "/" + _spPageContextInfo.layoutsUrl + "/Redirect.aspx";

    var queryParameters = {}, queryString = location.search.substring(1), re = /((^&=)+)=((^&)*)/g, m;

    while (m = re.exec(queryString)) {
        queryParameters(decodeURIComponent(m(1))) = decodeURIComponent(m(2));
    }

    queryParameters('Source') = redirectUrl;

    var updatedParams = location.search.replace(location.search, $.param(queryParameters));

    if (history.replaceState) {
        var newurl = window.location.origin + window.location.pathname + "?" + updatedParams;
        window.history.replaceState({ path: newurl }, '', newurl);
    }
});

However, if you are trying to modify the source on a form in SharePoint, that won’t be sufficient. Some onclick events are populated when the page loads with the initial Source value and these events will have to be override as well since they will redirect to the previous value:

$("#part1").on("click", "input(value='Cancel')", function (e) {
    e.preventDefault();
    window.location.href = redirectUrl;
});

$("#Ribbon.ListForm.Edit.Commit.Cancel-Large").click(function (e) {
    e.preventDefault();
    window.location.href = redirectUrl;
});

8 – jQuery dependency on a custom theme is not adding jQuery?

I know that this question has been asked previously many times but any of the solutions are not working in my case so please, I request if anyone can help me with this situation please provide me assistance.
I have added dependency of the core jQuery(along with other core libraries) in my theme.libraries.yml but only core jQuery is not loading in my drupal frontend and the console is showing the error of jQuery is not defined.
Also other drupal core libraries as working fine only jQuery is not loading.

My code of various files is as follows

theme.libraries.yml

global-styling:   
  version: 1.x   
  css:
    theme:
      css/bootstrap.css: {}
      css/custom.css: {}
      css/owl.carousel.min.css: {}
      css/owl.theme.default.min.css: {}
      css/responsive.css: {}
      css/style.css: {}
      fonts/fonts.css: {}   
  js:
    js/bootstrap.js: {}
    js/owl.carousel.min.js: {}
    js/popper.js: {}
    js/scripts.js: {}   
  dependencies:
    - core/jquery
    - core/jquery.once
    - core/drupal

theme.info.yml

name: wcsb
type: theme
description: 'Another outstanding WebCube Theme'
package: Core
version: '0.1.2'
core: '8.x'
base theme: classy

libraries:
  - wcsb/global-styling

regions:
  header_bar_1: 'Header Bar 1'
  header_bar_2: 'Header Bar 2'
  header_bar_3: 'Header Bar 3'
  header_bar_4: 'Header Bar 4'
  mobile_header_1: 'Mobile Header 1'
  mobile_header_2: 'Mobile Header 2'
  slider_images: 'Slider Images'
  breadcrumb: Breadcrumb
  featured_top: 'Featured top'
  above_content: 'Above Content'
  content: Content
  below_content: 'Below Content'
  sidebar_first: 'Sidebar first'
  sidebar_second: 'Sidebar second'
  featured_bottom_first: 'Featured bottom first'
  featured_bottom_second: 'Featured bottom second'
  featured_bottom_third: 'Featured bottom third'
  footer_first: 'Footer first'
  footer_second: 'Footer second'
  footer_third: 'Footer third'
  footer_fourth: 'Footer fourth'
  footer_fifth: 'Footer fifth'

list of scripts loading

<body class="path-frontpage page-node-type-page" data-new-gr-c-s-check-loaded="14.1002.0" data-gr-ext-installed=""
cz-shortcut-listen="true">

<script type="application/json" data-drupal-selector="drupal-settings-json">
    {
        "path": {
            "baseUrl": "/",
            "scriptPath": null,
            "pathPrefix": "",
            "currentPath": "node/1",
            "currentPathIsAdmin": false,
            "isFront": true,
            "currentLanguage": "en"
        },
        "pluralDelimiter": "u0003",
        "suppressDeprecationErrors": true,
        "ajaxTrustedUrl": {
            "form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM": true
        },
        "user": {
            "uid": 0,
            "permissionsHash": "508c848d9cf616f3b3735479b8cad945e128b7dbb0a534206170c7d3643afe05"
        }
    }
</script>
<script src="https://drupal.stackexchange.com/core/assets/vendor/jquery-once/jquery.once.min.js?v=2.2.3"></script>
<script src="/core/misc/drupalSettingsLoader.js?v=8.9.13"></script>
<script src="/core/misc/drupal.js?v=8.9.13"></script>
<script src="/core/misc/drupal.init.js?v=8.9.13"></script>
<script src="/themes/custom/wcsb/js/bootstrap.js?v=8.9.13"></script>
<script src="/themes/custom/wcsb/js/owl.carousel.min.js?v=8.9.13"></script>
<script src="/themes/custom/wcsb/js/popper.js?v=8.9.13"></script>
<script src="/themes/custom/wcsb/js/scripts.js?v=8.9.13"></script>
<script src="/modules/contrib/commerce/modules/cart/js/commerce_cart.js?v=8.9.13"></script>

console errors
console showing jquery is not defined errors.

jquery – Interromper execução do javascript

Preciso que seja interrompido o código caso algum campo esteja em vazio, mas isso não está acontecendo…

Como posso interromper o script caso esteja algo em branco?

Obrigado.

tx.executeSql('SELECT * FROM vistorias_quadros WHERE codigo=?', (codigo), function (tx, rsQuadros) {
      if (rsQuadros.rows.length != 0){
        let rowsQuadro = rsQuadros.rows;
        for (var i = 0; i < rowsQuadro.length; i++) {

            if(rowsQuadro(i).tag == "" || rowsQuadro(i).local == "" || rowsQuadro(i).tipo == "" || rowsQuadro(i).entrada == "" || rowsQuadro(i).status == "" || rowsQuadro(i).obs == "" || rowsQuadro(i).foto == ""){
                alert('O quadro ' + rowsQuadro(i).tag + ' está incompleto')
                return document.location='painel.html'
            }
            
          $.ajax(
            {
              url: "https://url/up_vistorias.php?Quadros",
              type: 'POST',
              async: false
              data: {
                acesso:'quadros',
                codigo: rowsQuadro(i).codigo,
                tag: rowsQuadro(i).tag,
                local: rowsQuadro(i).local,
                tipo: rowsQuadro(i).tipo,
                entrada: rowsQuadro(i).entrada,
                status: rowsQuadro(i).status,
                obs: rowsQuadro(i).obs,
                foto: rowsQuadro(i).foto
              },
              success: function (response) {
                  console.log("Quadros OK")
              }
            }
          );
        }
      }
    })

javascript – Mover un objeto canvas con Jquery

$("#ancho").bind('keyup mouseup', function () {
    var ancho = $("#ancho").val();     
    $("#c").css("width", ancho);     
});
$("#alto").bind('keyup mouseup', function () {
    var alto = $("#alto").val();     
    $("#c").css("height", alto);     
});
$("#horizontal").bind('keyup mouseup', function () {
    var horizontal = $("#horizontal").val();     
    $("#c").css("left", horizontal);     
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<style>
canvas {
    border: 1px dashed rgb(195 195 195);
    margin: 10px 0px 0px 0px;
    position: absolute;
    right: 0px;
    width: 150px;
    left: 50%;
    transform: translate(-50%, -50%);
    top: 50%;
    height: 150px;
}
</style>

<div class="row">
    <div class="col-6">
        <div class="form-group">
            <label>Ancho</label>
            <input type="number" class="form-control" value="150" id="ancho">
        </div>
    </div>
    <div class="col-6">
        <div class="form-group">
            <label>Alto</label>
            <input type="number" class="form-control" value="150" id="alto">
        </div>
    </div>
    <div class="col-6">
        <div class="form-group">
            <label>Horizontal</label>
            <input type="number" class="form-control" value="50" id="horizontal">
        </div>
    </div>
</div>

<div class="center" style="text-align: center;>
   <span style="position: relative">
      <img src="https://www.sudeporte.com/13755-thickbox_default/sudadera-capucha-keya-100-negro.jpg" alt="" id="img_producto">
      <canvas id="c" style="width: 152px; height: 176px;"></canvas>
   </span>
</div>

Laravel com ajax e jquery error no 500 post

Quando adicionei o Ajax na minha aplicação a principio funcionou mas depois retorna um erro 500 no POST (Sistema de Login) mais especificamente no POST http://127.0.0.1:8000/login 500 (Internal Server Error) meu codigo no js:

    $('form(name="form-login")').submit(function(event) {
        event.preventDefault();
        if (!$('#nickname')(0).value || !$('#password')(0).value) {
            return $('.messageBox').removeClass('d-node').html("Todos os campos são obrigatorios.");
        }
        $.ajax({
            url: "/login",
            type: 'POST',
            data: $(this).serialize(),
            dataType: 'json',
            // Percebi que ele não entra nesse success
            success: function(response) {
                if (response.successLog === true) {
                    if (response.auth === 1) {
                        window.location.href = "/auth/adm/admDashboard";
                    }
                    if (response.auth === 2) {
                        window.location.href = "/auth/manager/managerDashboard";
                    }
                    if (response.auth === 3) {
                        window.location.href = "/auth/user/dashboardUser";
                    }
                } else {
                    $('.messageBox').removeClass('d-node').html(response.message);
                }
            }
        })
    });
}); 

Meu controller:

public function login(Request $request)
    {

        $request->validate((
            'nickname' => 'required',
            'password' => 'required'
        ));

        $userNickname = User::where('nickname','=',$request->nickname)->first();
        if(!$userNickname)
        {
            $login('successLog') = false;
            $login('message') = "O nickname não foi encontrado no nosso banco de dados.";
            echo json_encode($login);
            return;
        }else {
            if(Hash::check($request->password, $userNickname->password)) {
                $request->session()->put('LoggedUser', $userNickname);
                $login('successLog') = true;
                $login('auth') = $userNickname->role_id;
                echo json_encode($login);
                return;
            }else {
                $login('successLog') = false;
                $login('message') = "Senha incorreta.";
                echo json_encode($login);
                return;
            }
        }
    }
```

jquery – Mostrar tooltip apenas quando não há modal aberto

Olá, eu tenho uma tela onde na sua abertura um modal pode ou não ser aberto, e também tenho uma tooltip na tela que só deve aparecer quando o modal não é aberto, quando o modal abre a tooltip não deve aparecer, porém ainda não consegui fazer funcionar isso, eu preciso testar se o modal abrir então não deve ser mostrada a tooltip e se o modal não abrir deve aparecer a tooltip. Estou chamando a função no:
<body onload="ShowTip()"> para mostrar a tooltip e meu modal abre por outro procedimento que está em outro framework (delphi intraweb) AddToInitProc('$(''#CadastroAssistenciaUsuario'').modal(''show'');');

segue o minha função:

   $(document).ready(function ShowTip() {
          if (($("#CadastroAssistenciaUsuario").data('bs.modal') || {isShown: false}).isShown) {
             $('#bTuto').tooltip('hide');
          } else {
            $('#bTuto').tooltip('show');
          }
        });

Porém com essa função ele sempre mostra independente se o modal abriu ou não…

Agradeço ajudaaainserir a descrição da imagem aqui

jquery – Problema en SwiperJS con slides duplicados

Si observan el comportamiento del slider a continuación, cuando cambian los slides (puede ser dando click en las flechas, en los circulos, o scrolleando), se le aplica la clase .active al circulo que está al medio.
Si scrollean hasta cierto punto (si van hacia la derecha, el error se observa al llegar al circulo rojo. Si van hacia la izquierda el error se ve en el circulo verde) van a notar que la clase active no se está aplicando correctamente, debido a que la libreria swiperJS crea slides duplicados, y estos no se comportan de la manera que espero.

Alguien sabe como hacer que mi js se aplique tambien a los slides duplicados?

 // COLORES
  $(".circulo-color").first().addClass("active");
  $(".btn-version").first().addClass("active");

  $(".circulo-color").on("click", function () {
    $(".circulo-color").removeClass("active");
    $(this).addClass("active");
    let urlImg = $(this).data("img");
    let text = $(this).data("text");
    let versiones = $(this).data("ver");
    $("#auto-color")
      .fadeOut(200, function () {
        $("#auto-color").attr("src", urlImg);
      })
      .fadeIn(200);
    $("#texto-color")
      .fadeOut(200, function () {
        $("#texto-color").text(text);
      })
      .fadeIn(200);

    if (versiones != "") {
      $("#version-color")
        .fadeOut(200, function () {
          $("#version-color").text(
            "Disponible sólo en las versiones: " + versiones
          );
        })
        .fadeIn(200);
    } else {
      $("#version-color").html("&nbsp;");
    }
  });

  var swiperColores = new Swiper(".swiper-container.colores", {
    slideToClickedSlide: true,
    loop: true,
    centeredSlides: true,
    height: 40,
    navigation: {
      nextEl: ".swiper-button-next",
      prevEl: ".swiper-button-prev"
    },
    mousewheel: true,
    slidesPerView: 3,
    spaceBetween: 1,
    on: {
      slideChangeTransitionStart: function () {
        $(".swiper-slide-active>.circulo-color").click();
      },

      init: function () {
        $(document).on("ready", function () {
          $(".swiper-slide-active>.circulo-color").click();
        });
      }
    }
  });
.circulo-color {
    display: inline-block;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    outline: none;
    border: 0;
    margin-top: 2rem;
    margin-right: 0.5rem;
    padding: 1rem;
    border: 6px solid #e6e5e1 !important;
    transition: 0.3s ease all;
  }

  .circulo-color.active {
    box-shadow: 0px 0px 0px 2px #3ec8f0;
  }
  
  .swiper-slide{
  transform: translate(3.5rem,-1rem)
  }
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Static Template</title>

    <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.css" />
    <link
      rel="stylesheet"
      href="https://unpkg.com/swiper/swiper-bundle.min.css"
    />
    <script
      src="https://code.jquery.com/jquery-3.6.0.min.js"
      integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
      crossorigin="anonymous"
    ></script>
    <script src="https://unpkg.com/swiper/swiper-bundle.js"></script>
    <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
  </head>
  <body>
    <div class="swiper-container colores">
      <div class="swiper-wrapper">
        <div class="swiper-slide" style="display: block;">
          <button
            class="circulo-color"
            data-img="1"
            data-text="1"
            data-ver="1"
            style="background-color: red;"
          ></button>
        </div>

        <div class="swiper-slide" style="display: block;">
          <button
            class="circulo-color"
            data-img="2"
            data-text="2"
            data-ver="2"
            style="background-color: yellow;"
          ></button>
        </div>

        <div class="swiper-slide" style="display: block;">
          <button
            class="circulo-color"
            data-img="3"
            data-text="3"
            data-ver="3"
            style="background-color: blue;"
          ></button>
        </div>

        <div class="swiper-slide" style="display: block;">
          <button
            class="circulo-color"
            data-img="4"
            data-text="4"
            data-ver="4"
            style="background-color: teal;"
          ></button>
        </div>

        <div class="swiper-slide" style="display: block;">
          <button
            class="circulo-color"
            data-img="5"
            data-text="5"
            data-ver="5"
            style="background-color: darkmagenta;"
          ></button>
        </div>

        <div class="swiper-slide" style="display: block;">
          <button
            class="circulo-color"
            data-img="6"
            data-text="6"
            data-ver="6"
            style="background-color: darkgreen;"
          ></button>
        </div>
      </div>
      <div class="arr">
        <div class="swiper-button-next"></div>
      </div>
      <div class="arr2">
        <div class="swiper-button-prev"></div>
      </div>
    </div>
  </body>
</html>

jquery – ¿Cómo activar respuesta de error solamente cuando no exista elementos de atributo name?

El siguiente código lo que hace es emitir una respuesta de error, donde se le va indicar al código Ajax que se inserte un mensaje de error en base a este parámetro: 'message'=> ("cliente"

echo json_encode(('status'=> false, 'message'=> ("cliente" =>"Por favor, ingresé el nombre del cliente para continuar.")));

Es decir que en caso de que exista dicho mensaje de error, va aparecer de la siguiente manera:

<input type="text" name="cliente" value="">
<span class="error">El cliente ya se encuentra registrado.</span>

Hasta ahora bien, el problema es que se activa también el mensaje de error con la clase <div class="warning"></div> y, este solo se debe activar cuando los mensajes personalizados no tengan atributo o este parámetro: 'message'=> ("cliente", es decir que esta de esta manera:

echo json_encode(('status'=> false, 'message'=>"<strong>Lo sentimos, pero no podemos procesar su solicitud. Inténtalo más tarde.</strong>"));

En conclusión, como hacer que se emita el mensaje de error <div class="warning"></div> los que no tengan estos parámetros 'message'=> ("cliente":

    if (empty($_POST('cliente'))){
        echo json_encode(('status'=> false, 'message'=> ("cliente" =>"Por favor, ingresé el nombre del cliente para continuar.")));
        exit;
    }

Esta es la parte del código que muestra los mensajes de error:

    .done(function(data) {
        let res = JSON.parse(data);
        // si es true el estado
        if(res.status){
            $('.success').fadeIn();
            $('.success').html(res.message).delay(8000).fadeOut(8000);
            $(frm)(0).reset();
            $(frm).hide();
            setTimeout(function(){
                location.href = 'customer.php';
            },9000);
        } else {
            for (let name in res.message) {
                $('.error').remove();
                let msg = '<span class="error">' + res.message(name) + '</span>';
                $(msg).insertAfter($('(name=' + name + ')', '#ajaxData'));
                $('.error').fadeIn().delay(5000).fadeOut(5000);
            }
            $('.warning').fadeIn();
            $('.warning').html(res.message).delay(8000).fadeOut(8000);
        }
    })

He probado agregando un else al for (let name in res.message) de la siguiente manera:

            for (let name in res.message) {
                $('.error').remove();
                let msg = '<span class="error">' + res.message(name) + '</span>';
                $(msg).insertAfter($('(name=' + name + ')', '#ajaxData'));
                $('.error').fadeIn().delay(5000).fadeOut(5000);
            } else {
                $('.warning').fadeIn();
                $('.warning').html(res.message).delay(8000).fadeOut(8000);
            }

Pero no funciona, como le puedo adaptar estos mensajes de error:

        if ($stmt->execute() && $stmt->affected_rows > 0) {
            echo json_encode(('status'=> true, 'message'=>"<strong>Los datos se actualizaron correctamente.</strong>"));
            exit;
        } else {
            echo json_encode(('status'=> false, 'message'=>"<strong>Lo sentimos, pero no podemos procesar su solicitud. Inténtalo más tarde.</strong>"));
            exit;
        }

El primero funciona if(res.status){ este activa el mensaje en el <div class="success"></div> cuando todo es correcto, la segunda parte funciona for (let name in res.message) { porque activa el mensaje de error en cada input que corresponda:

<input type="text" name="cliente" value="">
<span class="error">El cliente ya se encuentra registrado.</span>

Pero me falta mostrar el mensaje de error del <div class="warning"></div> de manera correcta.

jquery – ¿Cómo recibir respuesta de error en un modal desde validación en PHP?

Tengo el siguiente código JavaScript de jQuery empleando Ajax:

En donde por ejemplo mediante ese código yo puedo validar información que sea requerida, mediante advertencia, por ejemplo:

$('#insert_form').on("submit", function(event){
    event.preventDefault();
    if($('#nomCliente').val() == ""){
        alert("Nombre del cliente es requerido.");

El problema es que con esa funcionalidad no puedo validar otros requerimientos que deben ser validados desde PHP, por ejemplo si un usuario esta repetido el mismo email.

Teniendo en cuenta aquello, como puedo combinar esta funcionalidad de este código, que me permite validar información desde PHP, en caso de error este me muestra el mensaje de error en campo input:

Código:

Ejemplo de como funciona en imagen:
introducir la descripción de la imagen aquí

El código que realiza esa acción es la siguiente:

Inicia desde:

formData += '&' + $('#submit_data').attr('name') + '=' + $('#submit_data').attr('value');

para dar respuesta a:

    .done(function(data) {
        let res = JSON.parse(data);
        // si es true el estado
        if(res.status){
            $('.success').fadeIn();
            $('.success').html(res.message).delay(8000).fadeOut(8000);
            $(frm)(0).reset();
            $(frm).hide();
            setTimeout(function(){
                location.href = 'account.php';
            },9000);
        } else {
            for (let name in res.message) {
                $('.error').remove();
                let msg = '<span class="error">' + res.message(name) + '</span>';
                $(msg).insertAfter($('(name=' + name + ')', '#upd_data'));
                $('.error').fadeIn().delay(5000).fadeOut(5000);
            }
        }
    })

Por ejemplo los mensajes de error que me muestra este código https://jsfiddle.net/1dhfro3j/ es base a respuesta de error desde PHP, de la siguiente manera:

    if (empty($_POST('email'))){
        echo json_encode(('status'=> false, 'message'=> ("email" =>"Por favor, ingresé su correo electrónico para continuar.")));
        exit;
    }

El input, sin mucha magia todo es normal:

<div class="form-group">
    <div class="field field-block">
        <input type="email" name="email"">
        <label class="required">Email</label>
    </div>
</div>

En conclusión como puedo obtener esas mismas características en mi modal:

$(function() {
    //----- OPEN
    $('(data-modal-open)').on('click', function(e){
        $('#insert_form')(0).reset();
        var targeted_modal_class = jQuery(this).attr('data-modal-open');
        $('(data-modal="' + targeted_modal_class + '")').fadeIn().css('display', 'flex');
        e.preventDefault();
    });

    //----- CLOSE
    $('(data-modal-close)').on('click', function(e)  {
        var targeted_modal_class = jQuery(this).attr('data-modal-close');
        $('(data-modal="' + targeted_modal_class + '")').fadeOut(350);
        e.preventDefault();
    });

    $('#add').click(function(){
        $('#item_id').val("");
        $('#insert').val("Insert");
        $('#insert_form')(0).reset();
    });

    $(document).on('click', '.edit_data', function(){
        var item_id = $(this).attr("id");
        $.ajax({
            url:"fetch_client.php",
            method:"POST",
            data:{item_id:item_id},
            dataType:"json"})
        .done(function(data){
            $('#nomCliente').val(data.nomCliente);
            $('#item_id').val(data.idCliente);
            $('#insert').val("Update");
            $('(data-modal="mdl_upd")').fadeIn().css('display', 'flex');
        }).fail(function(){
            alert( "Ajax Request fail" );
        })
    });

    $('#insert_form').on("submit", function(event){
        event.preventDefault();
        if($('#nomCliente').val() == ""){
            alert("Nombre del cliente es requerido.");
        }else {
            $.ajax({
                url:"upd_client.php",
                method:"POST",
                data:$('#insert_form').serialize(),
                beforeSend:function(){
                    
                    var loadUrl = "customer.php";
                    $("#insert").load(loadUrl);

                    $('#insert').val("Inserting");
                }
            })
            .done(function(data){
                $('#insert_form')(0).reset();
                $('(data-modal="mdl_upd")').fadeOut(350);
            })
            .fail(function( jqXHR, textStatus ) {
                //alert( "Insert ajax request fail" );
                console.log(jqXHR.responseText);//Posible Texto Error
                console.log("Request failed: " + textStatus );
            })
        }
    });
    $(document).on('click', '.view_data', function(){
        var item_id = $(this).attr("id");
        if(item_id != ''){
            $.ajax({
                url:"select_client.php",  
                method:"POST",  
                data:{item_id:item_id}})
            .done(function(data){
                $('(data-modal="mdl_view")').fadeIn().css('display', 'flex');
                $('#mdl_detail').html(data);
                table.ajax.reload();
            })
            .fail(function( jqXHR, textStatus ) {
                console.log(jqXHR.responseText);
                console.log("Request failed: " + textStatus );
            })
        }
    });
});

Nota: El modal y, su estructura la puede observar con más detalle en una anterior pregunta: ¿Cómo actualizar código jQuery a la nueva versión y solucionar error en editar usuario – ajax?

Usar return PHP em função Jquery

Tenho uma página onde a pessoa vai digitar em um input e no onkeyup="if (this.value.length=7){BuscaLDAP(this.value)} sendo a função BuscaLDAP() um função PHP conforme:

function BuscaLDAP($MatrBsc) {

$ldap_handle = ldap_connect('servidor');
$search_base = 'ou=People';
$search_filter = '(uid=%s)';

$search_filter = sprintf( $search_filter, $MatrBsc );

$search_handle = ldap_search($ldap_handle, $search_base, $search_filter);
if(!$search_handle)
{
    throw new Exception("Servidor de Autenticação Indisponível (LDAP: erro na consulta)");
}

$ldap_resultado = ldap_get_entries($ldap_handle, $search_handle);
if($ldap_resultado('count')==0)
{
    throw new Exception("Usuário não reconhecido");
}

$ldap_user = $ldap_resultado(0);

$Rtrn('campo')       = strtoupper($ldap_user('campo1')(0));
$Rtrn('nome')        = strtoupper($ldap_user('campo2')(0));
$Rtrn('campo2')      = strtoupper($ldap_user('campo3')(0));

return  $Rtrn;

Eu consigo usar essa função normalmente em outros campos onde eu retorno um dado por pesquisa SQLServer na pagina PHP, a função esta funcionando e operacional em outra parte do projeto.

Preciso fazer a busca do campo para algo semelhante a echo BuscaLDAP($MatrLoc)('nome');, mas usando o evento onkeyup do input.

  • A função BuscaLDAP está em um arquivo separado, utilizando o require 'Includes/Ldap.php'; no meu arquivo atual, onde tem o input em questão.
  • O retorno da função é um array, que está sendo utilizado em outras partes do projeto, não posso alterar.
  • O arquivo onde está a função não pode receber um ajax porque tem outra função nele.
  • Quero retornar o resultado da função para um campo <span class="label label-success help-block" id="AddNomeLDAP"> </span>, para tal, pensei em fazer um funçao intermediária em Jquery, onde ela chamaria a função PHP e retornaria algo como: $("#AddNomeLDAP").innerHTML=<?=BuscaLDAP($MatrLoc('nome')?>

Minhas dúvidas:

  • Como chamar a função PHP dentro da função Jquery?
  • Como receber o retorno da PHP e usar na função Jquery?