Django Usar Ajax para “Desactivar” un registro de una tabla (Update cambiando un valor de 0 a 1)

Hola tengo la siguiente duda que no he podido resolver, estoy usando django para un proyecto de una hostal en el cual estoy listando todas las habitaciones a traves de una vista que cree en mi BD y la cual cree un modelo de ella en mi models.py, segun reglas de nuestro proyecto ningun registro se podra eliminar como tal y solo se podran Desactivar/Activar o cambiar los estados por lo como les decia antes tengo una tabla la cual me trae la informacion de la vista y tengo las acciones las cuales son Editar y Desactivar
introducir la descripción de la imagen aquí
Necesito que al apretar desactivar cambie su valor del estado de 1 a 3, lo cual en el fondo es un update pero sin actualizar la pagina pero si la tabla, por lo que he investigado y hay que usar ajax y he intentado lo siguiente

En mi listado, creo un form en las acciones, donde el boton desactivar al hacer click ejecute una funcion de js la cual como parametro le paso la ID de la habitacion la cual quiero desactivar

<form id="form-desactivar-hab" method="POST" action="">{% csrf_token %}
 <button type="submit" class="btn btn-danger" onclick="javascript:habitacion.desactivar('{{a.id_habitacion}}');">Desactivar</button>
</form>

En mi funcion de JS tengo una confirmación antes desactivar el registro + la ID de la habitacion por lo cual el parametro que pasa es el correcto, luego de eso vendria el ajax pero aqui es cuando no logro hacer que funcione y ejecute la view la cual le paso como array o valor la ID de la habitacion.

JS

habitacion = new HabitacionJS();
function HabitacionJS(){
    this.desactivar = function(idhabitacion){
        var resultado = confirm("Estas seguro de querer desactivar la habitación ID "+idhabitacion+" ?");
        if (resultado) {
            $(document).ready(function() {
                $('#form-desactivar-hab').submit(function() { 
                    $.ajax({
                        method: 'POST',
                        url: 'administrador/listahabitacion/',
                        data: {
                            'idhabitacion':idhabitacion
                        },
                        success: function(response) {
                            alert("Funciono");
                        },
                        error: function(e, x, r) { // on error..
                            alert("error: "+e+" "+x+" "+ r)
                        }
                    });
                    return false;
                });
            });
            alert("Confirmado");
        }
        else{
            alert("desconfirmado");
        }
    }
}

views.py

def desactivarhabit(request):
if request.method == 'POST':
try:
habid = request.POST("")
habi=Habitacion.objects.get(id_habitacion=habid)
habi.id_estado_habitacion = 3
habi.save()
return HttpResponse("Ok")
except Habitacion.DoesNotExist:
return HttpResponse("No se desactivo")
return HttpResponse('habitacion/Listado_Habitacion.html')

urls.py

path('',views.desactivarhabit,name='Listado_Habitacion.html'),

Hasta ahora no me ha funcionado, he probado viendo muchas formas en este mismo foro y otras paginas para enviar informacion a traves de ajax pero sin resultados por ahora, yo no necesito enviar un formulario completo pero si un valor que es el id de la habitacion para luego con django, en la vista buscar la habitacion con esa id y de forma manual cambiarle el estado y guardar el registro para que luego la pagina no se recargue ni cambie la URL pero si poder refrescar la tabla.

jquery ajax – I’ve an endpoint from which I should fetch the data in SharePoint 2013

I’ve an API key and an endpoint like :
mysite/mysite.sharepoint_service.num_grants?x_key=key&x_lookup=abcde&x_ts=55888
here x_key: md5 hash of a secret api_key
x_lookup :base64 encoded SSO_ID of user
x_ts : UNIX timestamp

The above endpoint has a response as:
{“status”:”success”
,”message”:”retrieved data”
,”lookup”:”abcde”
,”grant_count”:10}

Now, the requirement is I need to display the number of ‘grant_count’ based on user’s login.
How can I implement this with jQuery or javascript? I’m using a SharePoint 2013 site.

I’m completely new to this approach, any help would be appreciated!

What is the correct way to call a PHP Function with multiple parameters from the AJAX Handler?

Q: What is the correct way to call a PHP Function with multiple parameters from the AJAX Handler?

Q: Am I calling the php function correctly?


Page Element
The user clicks a button.

Action:
The click should connect to an external server using the following params:

  1. User Name 2. IP Address 3. Port 4. Public Key 5. Service

Purpose:
Send an vote string (from host A) to an external Gaming server (host B).
I do not need to update any wordpress content.

WordPress Version: 5.4.1
I put my custom php code into “/wp-contents/plugins/my-plugin/votifier.php”

I made sure the custom plugin is activated.

I have WordPress in Debug mode. i.e. Debug mode is true.

The Button

<div id="frm_field_61_container">
<button type="button">Try it</button>
</div>

WordPress JQuery with AJAX

jQuery(document).ready( function($) {
 $("#frm_field_61_container").click(function(){

      jQuery.ajax({

         type : "post",

         dataType : "json",

         url : myAjax.ajaxurl,

         data : {    action: "my_vote_count"
                    ,username: $('input(name="item_meta(59)")').val()
                    ,key: $.trim($("#field_yjr62").val())
                    ,ip: $('input(name="item_meta(40)")').val()
                    ,port: $('input(name="item_meta(42)")').val()
                    ,service: "Votifier"
                },

        success:    function(data,status,xhr){
                    alert("Data: " + data);
                    alert("Status: " + status);
                    alert("xhr: " + xhr);
                }
      });   
   });
});

My Custom PHP Script

<?php


function mainVotifier($username, $public_key, $server_ip, $port, $service_name) {

define( 'VOTE_FORMAT', 'VOTEn%sn%sn%sn%dn' );
define( 'PUBLIC_KEY_FORMAT', '-----BEGIN PUBLIC KEY-----n%sn-----END PUBLIC KEY-----' );

$key    = wordwrap($public_key, 65, "n", true);
$key    = sprintf(PUBLIC_KEY_FORMAT, $key);


  if (php_sapi_name() !== 'cli') {
            //Detect proxy and use correct IP.
            $address = isset($_SERVER('HTTP_X_FORWARDED_FOR')) ? $_SERVER('HTTP_X_FORWARDED_FOR') : $_SERVER('REMOTE_ADDR');
        } else {
            //Script is run via CLI, use server name.
            $address = $_SERVER('SERVER_NAME');
        }

    $data = sprintf(VOTE_FORMAT, $service_name, $username, $address, time());
    openssl_public_encrypt($data, $crypted, $key);
    $socket = @fsockopen($server_ip, $port);

    if ($socket) {
        if (fwrite($socket, $crypted)) {
            fclose($socket);
            return true;
        }
    }

}

?>

/* ===== WP_ENQUEUE SCRIPTS ==== */

/* ===== JQuery Ajax Script to call votifier.php ==== */
add_action( 'wp_enqueue_scripts', 'my_script_enqueuer' );
function my_script_enqueuer() {

   wp_enqueue_script( 'my_voter_script',  plugins_url('sendvote.js', __FILE__), array( 'jquery'),   '1.0', true);

   wp_localize_script( 'my_voter_script', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));

}

/* ===== My AJAX Handler ==== */

/* add_action( 'wp_ajax_nopriv_my_vote_count', 'my_ajax_handler' ); */ 
add_action( 'wp_ajax_my_vote_count', 'my_ajax_handler');
function my_ajax_handler() {

/*  check_ajax_referer('votifier_response_key'); */

    $username       = $_POST("username");
    $public_key     = $_POST('key');
    $server_ip      = $_POST("ip");
    $port           = $_POST("port");   
    $service_name   = $_POST("service");

   echo "mainVotifier("" . $username . "", "" . $public_key . "", "" . $server_ip . "", "" . $port . "", "" . $service_name . "");";


    wp_die(); // All ajax handlers die when finished

}

Console Results

The console results are good, but the other server is not responding.
I tested the PHP code locally from my personal computer and Server B is responding.


Request URL:https://bestminecraftserverlist.com/wp-admin/admin-ajax.php
Request Method:POST
Remote Address:192.169.170.42:443
Status Code:
200
Version:HTTP/2

javascript – validar datos de un array con ajax en js

quiero hacer una validación en js para no repetir datos en la base de datos, y estoy teniendo un error y necesito que me aclaro por favor para poder resolver el problema lo tengo en este else if,

if (existeImeibd(imei1)) {

        $('#imei_errort').removeClass("d-none");
        $('#imeiel_error').addClass("d-none");
        $('#imei_error').addClass("d-none");
        $('#imeieb_error').removeClass("d-none");

      }

en la función recibo un si si existe el dato en la base de datos y no si no existe aqui me funciona todo bien me llega el si si existe y el no si no existe pero no activa los errores y envia el dato al array

function existeImeibd(imei1){

  $.ajax({
    url:"../ajax/productos.php?op=existe_imei",
    method:"POST",
    data:{imei1:imei1},
    success: function(data){

      if(data === "si" ){
        return true;

      }else{
        return false;
      }

      }

  });

}

quiero que si es si active los errores y se detenga hasta que envié un no

How to disable ajax in Taxonomy add/edit pages?

Is there way to disable the automatic addition without page reload in taxonomy add/edit pages?
eg category pages ..if I add category is added without page reload but I want to disable that.

Due to some conflict with ACF extended page “https://wordpress.org/plugins/acf-extended/” my category page is not working as it should.

enter image description here

Please help

Error en la recepción de datos php con AJAX

Intento pasar un dato a través del método POST con ajax, pero en el archivo php al que lo mando no consigo que recoja los datos.
Adjunto código.

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

ajax – Form alter + Unlimited Values + Entity Reference Field

  • There are two fields, News Type (Selectbox), News (Reference Entities, Unlimited option, autocomplete)
  • When user select a news type, options of News fields needs to revised.
  • Example: Selecting World needs to display the News related to World.
  • I have added the ajax callback to get the revised data
  • I received the options
  • But when i submit the form or click on add more it says “This entity (node: 6) cannot be referenced. “
function featured_news_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
  $form('field_featured_news')('#prefix') = '<div id="news-wrapper">';
  $form('field_featured_news')('#suffix') = '</div>';

  $form('field_news_type')('widget')('#ajax') = (
    'callback' => 'updateNews',
    'disable-refocus' => FALSE,
    'event' => 'change',
    'wrapper' => 'news-wrapper',
    'progress' => (
      'type' => 'throbber',
      'message' => t('Loading...'),
    ),
  );

  if (!empty($values) && !empty($values('field_news_type'))) {
    $type = $form_state->getValue('field_news_type')(0)('value');
    foreach ($form_state->getValue('field_featured_news') as $key => $value) {
      $form('field_featured_news')('widget')($key)('target_id')('#selection_settings')('view')('arguments')(0) = $type;
    }
  }
}

function updateNews(&$form, FormStateInterface $form_state) {
  return $form('field_featured_news');
}

magento2 – How to use Ajax Autocompleter in Magento 2?

I’m working on migration from Magento 1.9 to Magento 2.3 , in one of my phtml code i have this javascript Ajax.Autocompleter function, as i know this function is not available in Magento 2.3, how can i convert this function so it could work in Magento 2.3 ?

                     initAutocomplete : function(url, destinationElement){
                            var ajaxAutocompleter = new Ajax.Autocompleter(
                                this.field,
                                destinationElement,
                                url,
                                {
                                    paramName: this.field.name,
                                    method: 'get',
                                    minChars: 2,
                                    updateElement: this._selectAutocompleteItem.bind(this),
                                    onShow : function(element, update) {
                                        if(!update.style.position || update.style.position=='absolute') {
                                            update.style.position = 'absolute';
                                            Position.clone(element, update, {
                                                setHeight: false,
                                                offsetTop: element.offsetHeight
                                            });
                                        }
                                        Effect.Appear(update,{duration:0});
                                    }
                                }
                            );
                        }

Form Alter Ajax callback add paragraph item

Possible to add a paragraph row/item based on another field Ajax callback in form Alter.

I attempted copying an existing item from the widget array and appending it back into the array.

It does render and show up on the front end but does not save