Hej, piszę plugin do wordpressa. Chcę dane z formularza zapisywać w bazie, bez odświeżania strony. Próbuję to zrobić za pomocą jsa i ajaxa, Wszystko by było ok, gdyby w pliku z jsem do xhr.open('POST', path, true); za patha był podany normalny String, lecz ja tutaj muszę użyć funkcji. Ktoś wie jak to zrobić lub jaki jest inny sposób, aby to rozwiązać?
HTML
<div class="tab-pane active" id="tab1">
<a href="#open-addressee" class="btn btn-primary" >DODAJ ADRESATA</a>
<a href="#open-receiver" class="btn btn-primary ">DODAJ ODBIORCĘ</a>
<a href="#open-editiorial-place" class="btn btn-primary" >DODAJ MIEJSCE REDACJI PISMA</a>
<!--<a href="#open-social-media" class="btn btn-primary" >DODAJ SOCIAL MEDIA</a>-->
<form onsubmit="po_save_data_general_letter()" method="post" enctype="multipart/form-data" id="po_save_addresse_to_db"></form>
<form name ="form_pismo_ogolne" onSubmit="action_form_pismo_ogolne();" target="_blank" method="POST" enctype="multipart/form-data" id="po_pdf_generate"></form>
</div>
<div id="open-addressee" class="modal-window">
<div>
<a href="#modal-close" title="Close" class="modal-close"> ×</a>
<div class="modal-header">
<div class="title text-center">Dodaj adresata</div><hr class="hr">
</div>
<div >
<div class="form-group" id="po_adresse_fields">
<div class="checkbox">
<label><input type="checkbox" id="po_chb_addresse_default" name="chb_addresse_default" form="po_pdf_generate">Domyślna</label>
</div>
<div class="checkbox">
<label><input type="checkbox" id="po_chb_add_section_addresse" name="chb_add_section_addresse" form="po_pdf_generate po_save_addresse_to_db">Dodaj sekcję adresata pisma</label>
</div>
<input type="text" class="form-control" id="po_addresse_krs" name="addresse_krs" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->krs!='') echo $po_result->krs; ?>" placeholder="KRS"><br>
<input type="text" class="form-control" id="po_addresse_nip" name="addresse_nip" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->nip!='') echo $po_result->nip; ;?>" placeholder="NIP"><br>
<input type="text" class="form-control" id="po_addresse_region" name="addresse_region" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->region!='') echo $po_result->region;?>" placeholder="REGION"><br>
<input type="text" class="form-control" id="po_addresse_phone" name="addresse_phone" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->phone!='') echo $po_result->phone;?>" placeholder="Tel"><br>
<input type="text" class="form-control" id="po_addresse_email" name="addresse_email" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->email!='') echo $po_result->email;?>" placeholder="Email"><br>
<input type="text" class="form-control" id="po_addresse_web" name="addresse_web" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->website!='') echo $po_result->website;?>" placeholder="Strona internetow"><br>
<input type="text" class="form-control" id="po_addresse_street" name="addresse_street" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->addresse_street!='') echo $po_result->addresse_street;?>" placeholder="Ulica numer posesji/numer lokalu"><br>
<input type="text" class="form-control" id="po_addresse_post_code_city" name="addresse_post_code_city" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->addresse_post_code_city!='') echo $po_result->addresse_post_code_city; ?>" placeholder="Kod pocztowy i miejscowość"><br>
<input type="text" class="form-control" id="po_addresse_salutation" name="addresse_salutation" form="po_pdf_generate po_save_addresse_to_db"
value="<?php if($po_result->addresse_salutation!='') echo $po_result->addresse_salutation; ?>" placeholder="Zwrot grzecznościowy"><br>
<div class="form-group ">
<div id="po_info_signature"></div>
<div id="po_fields"></div>
<button type="button" class="btn btn-primary" id="po_btn_add_fields">Dodaj podpis</button>
<button type="button" class="btn btn-danger" id="po_btn_delete_fields">Usuń podpis</button><br><br>
</div>
<span id="po_addresse_notic" class="community_span"></span><br>
<div id="res"></div>
</div>
<div class="text-center">
<button type="button" class="btn btn-primary" id="po_adrresse_clean" id="adrresse_clean">Wyczyść pola</button>
<!-- <a href="#modal-close" title="Close" class="btn btn-primary" id="po_address_remember_data">Ok</a> -->
<button type="submit" class="btn btn-primary" form="po_save_addresse_to_db">Ok</button>
</div>
</div>
</div>
</div>
JS
document.getElementById('po_save_addresse_to_db').addEventListener('submit', event =>{
event.preventDefault();
if(document.getElementById("po_chb_addresse_default").checked == true)
{
const xhr=new XMLHttpRequest();
xhr.onload=function()
{
if(this.status===200)
{
document.querySelector('#res').innerHTML=this.responseText;
}
}
const po_addr_krs = document.getElementById("po_addresse_krs");
const po_addr_nip = document.getElementById("po_addresse_nip");
const po_addr_region = document.getElementById("po_addresse_region");
const po_addr_phone = document.getElementById("po_addresse_phone");
const po_addr_email = document.getElementById("po_addresse_email");
const po_addr_web = document.getElementById("po_addresse_web");
const po_addr_street = document.getElementById("po_addresse_street");
const po_addr_post_code_city = document.getElementById("po_addresse_post_code_city");
const po_addr_salutation = document.getElementById("po_addresse_salutation");
const path='<?php echo plugins_url() ;?>/converter_form_to_pdf/database/test.php';
//const path='<?php po_save_data_general_letter() ;?>';
xhr.open('POST', path, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(encodeURI(
'krs='+po_addr_krs.value+
'&nip='+po_addr_nip.value+
'®ion='+po_addr_region.valuev+
'&phone='+po_addr_phone.value+
'&email='+po_addr_email.value+
'&website='+po_addr_web.value+
'&addresse_street='+po_addr_street.value+
'&addresse_post_code_city='+po_addr_post_code_city.value+
'&addresse_salutation='+po_addr_salutation.value
));
}
});
PHP
<?php
function po_save_data_general_letter()
{
global $wpdb;
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
//Adrresse form fields
$addresse_krs=$_POST['krs'];
$addresse_nip=$_POST['nip'];
$addresse_region=$_POST['region'];
$addresse_phone=$_POST['phone'];
$addresse_email=$_POST['email'];
$addresse_web=$_POST['website'];
$addresse_street=$_POST['addresse_street'];
$addresse_post_code_city=$_POST['addresse_post_code_city'];
$addresse_salutation=$_POST['addresse_salutation'];
$po_addr = $wpdb->prefix . "addressee_of_the_general_letter";
$user_id=get_current_user_id();
$wpdb->update($po_addr, array(
'krs'=>$addresse_krs,
'nip'=>$addresse_nip,
'region'=>$addresse_region,
'phone'=>$addresse_phone,
'email'=>$addresse_email,
'website'=>$addresse_web,
'addresse_street'=>$addresse_street,
'addresse_post_code_city'=>$addresse_post_code_city,
'addresse_salutation'=>$addresse_salutation
), array(
'id_user'=>$user_id
));
echo "oooooook";
}
?>