Script JS nefunctional din pagina 2 incarcata cu Ajax
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
valy
- Mesaje: 4
Script JS nefunctional din pagina 2 incarcata cu Ajax
Salutare,
In cadrul unei aplicatii web am urmatoarea problema:
- pagina index1.php incarca intr-un div cu ajutorul unui script o alta pagina index2.php.
-a doua pagina contine la randul ei cod javascript /ajax , dar care nu este executat.
- am testat pagina a doua separat si functioneaza, deci problema este la includerea ei in pagina 1.
Dupa 2 zile de cautat solutii, apelez la ajutorul vostru.
In pagina 1 am:
Cod: Selectaţi tot
div class="content-wrapper">
<div class="container-fluid" id="continut">
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('a.lnk').click(function () {
var url = $(this).attr('href');
$('#continut').load(url);
return false;
});
});
</script>
Pagina 2 inclusa in div contine la randul ei cod html si javascript/ajax cu trimitere la alta pagina pentru operatii CRUD cu mysql.
MarPlo
Salut,
Codurile JS din continut preluat cu Ajax nu sunt executate fiindca acel continut e primit ca un sir.
O astfel de problema, cu rezolvare, este prezentata in tutorialul:
coursesweb.net/ajax/execute-javascript-code-ajax-response_t
Gasesti diferite solutii si la cautare pe internet:
Execute JavaScript scripts loaded via AJAX.
- Daca nu rezolvi cu ce gasesti, scrie aici si se poate rezolva cu raspunsuri de la cei care au rezolvat astfel de situatii.
valy
Ma depaseste problema. Deci in primul fisier din administrare/index.php am
Cod: Selectaţi tot
<li><a class="lnk" href="contabilitate/facturi/index.php">Facturi</a> </li>
<script type="text/javascript">
$(document).ready(function () {
$('a.lnk').click(function () {
var url = $(this).attr('href');
$('#continut').load(url);
return false;
});
});
</script>
In fiserul facturi/index.php preluat in div cu id="continut" am urmatorul script care de fapt prelucreaza un form si apeleaza la un alt fisier numit response.php in care se fac operatii CRUD intr-o baza mysql:
Cod: Selectaţi tot
<script>
$(document).ready(function () {
var grid = $("#employee_grid").bootgrid({
ajax: true,
rowSelect: true,
post: function () {
/* To accumulate custom parameter with the request object */
return {
idFactura: "b0df282a-0d67-40e5-8558-c9e93b7befed"
};
},
url: "../administrator/contabilitate/facturi/response.php",
formatters: {
"actiuni": function (column, row) {
return "<button type=\"button\" class=\"btn btn-xs btn-default command-edit\" data-row-id=\"" + row.idFactura + "\"><span class=\"glyphicon glyphicon-edit\"></span></button> " +
"<button type=\"button\" class=\"btn btn-xs btn-default command-delete\" data-row-id=\"" + row.idFactura + "\"><span class=\"glyphicon glyphicon-trash\"></span></button>";
}
}
}).on("loaded.rs.jquery.bootgrid", function () {
/* Executes after data is loaded and rendered */
grid.find(".command-edit").on("click", function (e) {
//alert("You pressed edit on row: " + $(this).data("row-id"));
var ele = $(this).parent();
var g_id = $(this).parent().siblings(':first').html();
var g_name = $(this).parent().siblings(':nth-of-type(2)').html();
console.log(g_id);
console.log(g_name);
//console.log(grid.data());
$('#edit_model').modal('show');
if ($(this).data("row-id") > 0) {
// collect the data
$('#edit_id').val(ele.siblings(':first').html()); // in case we're changing the key
$('#edit_idFur').val(ele.siblings(':nth-of-type(2)').html());
$('#edit_codBare').val(ele.siblings(':nth-of-type(3)').html());
$('#edit_numar').val(ele.siblings(':nth-of-type(4)').html());
$('#edit_serie').val(ele.siblings(':nth-of-type(5)').html());
$('#edit_dataScadenta').val(ele.siblings(':nth-of-type(6)').html());
$('#edit_dataEmitere').val(ele.siblings(':nth-of-type(7)').html());
$('#edit_suma').val(ele.siblings(':nth-of-type(8)').html());
$('#edit_descriere').val(ele.siblings(':nth-of-type(9)').html());
} else {
alert('Acum selectati randul! Prima oara selectati randul, apoi apasati butonul editare');
}
}).end().find(".command-delete").on("click", function (e) {
var conf = confirm('Stergeti randul ' + $(this).data("row-id") + ' ?');
alert(conf);
if (conf) {
$.post('../administrator/contabilitate/facturi/response.php', {
idFactura: $(this).data("row-id"),
action: 'delete'
}
, function () {
// when ajax returns (callback),
$("#employee_grid").bootgrid('reload');
});
//$(this).parent('tr').remove();
//$("#employee_grid").bootgrid('remove', $(this).data("row-id"))
}
});
});
function ajaxAction(action) {
data = $("#frm_" + action).serializeArray();
$.ajax({
type: "POST",
url: "../administrator/contabilitate/facturi/response.php",
data: data,
dataType: "json",
success: function (response) {
$('#' + action + '_model').modal('hide');
$("#employee_grid").bootgrid('reload');
}
});
}
$("#command-add").click(function () {
$('#add_model').modal('show');
});
$("#btn_add").click(function () {
ajaxAction('add');
});
$("#btn_edit").click(function () {
ajaxAction('edit');
});
});
</script>
E cineva dispus sa ma ajute sa rezolv acest conflict?
MarPlo
Daca si in pagina 2 ai alta apelare cu ajax, lucrurile se complica. Elementele html care sunt folosite in scriptul din pagina 2 trebuie sa fie si ele incluse in pagina 1
Cel mai simplu ar fi sa folosesti <iframe>.
Sa incluzi pagina 2 intr-un <iframe> in pagina 1, cam asa:
Cod: Selectaţi tot
<div id='continut'>continut</div>
<li><a class="lnk" href="contabilitate/facturi/index.php">Facturi</a> </li>
<script>
var a_lnk = document.querySelectorAll('a.lnk');
var continut = document.querySelector('#continut');
for(var i=0; i<a_lnk.length; i++){
a_lnk[i].addEventListener('click', (e)=>{
e.preventDefault();
var url = e.target.getAttribute('href');
continut.innerHTML ="<iframe src='"+ url +"' style='width:500px; height:400px;'></iframe>";
});
}
</script>
- Iar din css setezi dimensiunile iframe-ului.
Subiecte similare
-
Script ajax pentru mesaj de login
JavaScript - jQuery - Ajax
Primul mesaj
Am pagina de login in care vreau sa imi arate un mesaj de success sau fail care sa preia din do_login ,un script ajax care sa apara success cand se...
Ultimul mesaj
Gata am rezolvat,cu ajutorul ultimei sintaxe ca imi arata eroare undeva,multumesc mult
-
Post cu Ajax in modal
JavaScript - jQuery - Ajax
Primul mesaj
Bună ziua,
Vreau să trimit în aceeași pagină dar în modal două id-uri. Prin alert(id) îmi arată conținutul postului trimis dar în modal nu imi...
Ultimul mesaj
Nu prea inteleg mecanismul si ce anume nu functioneaza.
Oricum, daca functioneaza cand pui manual id-ul, poate ca problema e de la php.
Trebuie sa...
-
Ordine de executie cu jQuery-AJAX
JavaScript - jQuery - Ajax
Primul mesaj
Am acest cod (ajax este asincron):
function echoHello(){
return $.ajax({
//this will return hello ;
});
}
function echoWorld(){
return world...
Ultimul mesaj
Ajax face un apel către serverul web și este asincron. Nu știi cât va dura pana la raspuns. Este la fel ca:
setTimeout(_ => {...
-
Echo dupa Ajax Request
JavaScript - jQuery - Ajax
Primul mesaj
Salutare ,
Cu toate ca am citit documentatia,nu reusesc ca fac un 'echo' dupa ce am trimis datele prin ajax, are cineva idee, de ce nu merge ?...
Ultimul mesaj
Salut, am reusit sa inteleg si sa rezolv.
Mai jos codul:
<?php
echo before if ;
// delete part
if (isset($_POST )) {
$f_api = false ; //test...
-
Parsererror trimitere date cu Ajax si htaccess
JavaScript - jQuery - Ajax
Primul mesaj
Salut, am un script pentru un calendar, dar se pare ca atunci cand vreau sa trimit date prin ajax primesc eroarea din titlu fiindca am modificat...
Ultimul mesaj
Ba da, am fost trimis datele cum s-a zis si la raspunsul anterior si tot nimic, nu inteleg
-
Ajax fade mesaj si redirect dupa un timp
JavaScript - jQuery - Ajax
Primul mesaj
Am codul asta si vreau in loc de input type=button sa fie submit, dar sa imi dea fade la fel in 5 secunde de cand apare eroarea.
Daca schimb cu...
Ultimul mesaj
Am rezolvat,multumesc frumos de ajutor