Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème Insert Wordpress

Sql Insert ne marche pas

    1 avril 2020 à 18:31:02

    Bonjour à tous,

    Pendant cette période de confinement, je me suis lancé à faire un extranet lié à un site Wordpress. Non pas que le développement sans wordpress me gène mais je bloque avec le CSS.
    Bref, là n'est pas le sujet.
    Je me suis lancé a créer un plugin.
    Celui-ci affiche des données test d'une base de données sans problème.
    J'ai un petit formulaire sous ces données pour y insérer un nouvel enregistrement dans la base et ça me met une erreur 500
    Lorsque je vire mon bout de code "insert", cela marche donc...

    mon plugin:

    <?php
    /*
    Plugin Name: Divers
    Plugin URI: ""
    Description: Ce plugin sert à ajouter des éléments dans la base de données
    Author: Olivier
    Author URI: ""
    */
    
    // Hook for adding admin menus
    add_action('admin_menu', 'mt_add_pages1');
    
    // action function for above hook
    function mt_add_pages1() {
        // Add a new top-level menu (ill-advised):
        add_menu_page(__('Divers ajouts','menu-test'), __('Détail','menu-test'), 'client', 'Details_ajout', 'InterAjout', 'dashicons-admin-users', 4 );
    
        // Add a submenu to the custom top-level menu:
        add_submenu_page('Details_ajout', __('Ajout Ets','menu-test'), __('Création entreprise','menu-test'), 'client', 'sub-page', 'mt_sublevel_page1');
    
        // Add a second submenu to the custom top-level menu:
        add_submenu_page('Details_ajout', __('Ajout intervention','menu-test'), __('Création intervention','menu-test'), 'client', 'sub-page2', 'mt_sublevel_page21');
    // Add a new top-level menu (ill-advised):
        add_menu_page(__('Ajouts_Client','menu-test'), __('Contact','menu-test'), 'client', 'Ajout_Client', 'mt_toplevel_page1' );
    
        // Add a submenu to the custom top-level menu:
        add_submenu_page('Ajout_Client', __('Ajout Ets','menu-test'), __('Création entreprise','menu-test'), 'client', 'sub-page', 'mt_sublevel_page1');
    
        // Add a second submenu to the custom top-level menu:
        add_submenu_page('Ajout_Client', __('Ajout intervention','menu-test'), __('Création intervention','menu-test'), 'client', 'sub-page2', 'mt_sublevel_page21');
    
    
    
    
    
    }
    
    // mt_toplevel_page() displays the page content for the custom Test Toplevel menu
    function InterAjout() {
    	global $wpdb;
    	$myrows = $wpdb->get_results( "SELECT * FROM mod361_TypeInter" );
    	foreach ( $myrows as $myrow ) 
    {
    	echo $myrow->Description;
    }
    $myrows = null;
    	//echo $myrows->Description;
    	?>
    	
    	<div class="col-md-12 col-sm-12 col-xs-12">
                    <div class="x_panel">
                      <div class="x_title">
                      </div>
                      <div class="x_content">
                        <table id="datatable" border='1' class="table table-striped table-bordered">
                          <thead>
                            <tr>
    							<th>Numéro Auto</th>
    						  	<th>Abréviation</th>
                              	<th>Description</th>
                            </tr>
                          </thead>
                          <tbody>
                            <tr>
                              <td><?php echo $myrow->NumAuto; ?></td>
    						  <td><?php echo $myrow->Abreviation; ?></td>
    						  <td><?php echo $myrow->Description; ?></td>
    						  </tr>
                            <?php 
    						$myrows = null;
                            ?>
                          </tbody>
                        </table>
                      </div>
                    </div>
                  </div>
    			  <hr>
    			  <div class="x_content">
                        <br />
                        <div class="form-group">
                            <label class="control-label col-md-3 col-sm-3 col-xs-12" for="first-name">Abréviation <span class="required">*</span>
                            </label>
                            <div class="col-md-6 col-sm-6 col-xs-12">
                              <input type="text" id="Abre" name="Abre" required="required" class="form-control col-md-7 col-xs-12">
                            </div>
                          </div>
                          <div class="form-group">
                            <label class="control-label col-md-3 col-sm-3 col-xs-12" for="first-name">Description <span class="required">*</span>
                            </label>
                            <div class="col-md-6 col-sm-6 col-xs-12">
                              <input type="text" id="Description" name="Description" required="required" class="form-control col-md-7 col-xs-12">
                            </div>
                          </div>
                         
    					  <div class="ln_solid"></div>
    <div class="form-group">
    <div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
    <button class="btn btn-primary" type="button" onclick="document.location.href='index.php'">Retour</button>
    <button class="btn btn-primary" type="reset" onclick="efface()">Effacer</button>
    <button type="submit" class="btn btn-success" onclick="envoyer2()">Valider</button>
    </div>
    </div>
    </div>
    				
    <?php
    }
    
    // mt_sublevel_page() displays the page content for the first submenu
    // of the custom Test Toplevel menu
    function mt_sublevel_page1() {
        echo "<h2>" . __( 'Test Sublevel', 'menu-test' ) . "</h2>";
    }
    
    // mt_sublevel_page2() displays the page content for the second submenu
    // of the custom Test Toplevel menu
    function mt_sublevel_page21() {
        echo "<h2>" . __( 'Test Sublevel2', 'menu-test' ) . "</h2>";
    }
    
    ?>
    <script>
    function efface(){
    	getElementById('Abre').value="";
    	getElementById('Description').value="";
    }
    function getXMLHttpRequest() 
    {
    	var xhr = null;
    	if (window.XMLHttpRequest || window.ActiveXObject)
    	{
    		if (window.ActiveXObject){
    			try
    			{
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} 
    			catch(e)
    			{
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		} 
    		else
    		{
    			xhr = new XMLHttpRequest(); 
    		}
    	}
    	else
    	{
    		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
    		return null;
    	}
    	return xhr;
    }
    function envoyer2(){
    var xhr = getXMLHttpRequest();
    		var valeurb0 = "ajout";
    		var valeurb1 = document.getElementById("Abre").value;
    		var valeurb2 = document.getElementById("Description").value;
    		alert(valeurb0 + valeurb1 + valeurb2);
    		xhr.onreadystatechange = function() {
    		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {                    
    			var val = xhr.responseText;
    			alert('après passage par ajax, le résultat est : '+val);
    			}
    	};
    	xhr.open("POST", "../wp-content/plugins/Divers/fonctions/Salarie.php", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send("Etape="+valeurb0+"&Abreviation="+valeurb1+"&Description="+valeurb2);
    }
    </script>

    mon fichier Salarie.php

    <?php
    global $wpdb;
    $val = $_POST['Etape'];
    if($val == "ajout"){
    $Abreviation = $_POST['Abreviation'];
    $Description = $_POST['Description'];
    //$wpdb->query("INSERT INTO mod361_TypeInter ('Abreviation','Description' ) VALUES ($Abreviation,$Description)");
    $wpdb->insert({$wpdb->prefix}'TypeInter', array("Abreviation" => $Abreviation, "Description" => $Description));
    /*$wpdb->insert(
        $wpdb->'mod361_TypeInter',
        array(
            'Abreviation' => $Abreviation,
            'Description' => $Description
        ),
        array(
            '%s',
            '%s'
        )
    );*/
    echo $val.'|'.$Abreviation."|".$Description;
    }
    ?>

    J'y ai laissé mes derniers tests donc si vous avez une idée...
    Merci d'avance pour votre aide.

    Olivier

    • Partager sur Facebook
    • Partager sur Twitter

    Problème Insert Wordpress

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown