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
Mesaje:4343
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
Mesaje:4
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
Mesaje:4343
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
- Eroare citire pagina cu file_get_contents
PHP - MySQL - XML
Primul mesaj
Buna ziua,
Vreau sa preiau informatiile din aceasta adresa si sa o afisez intr-o alta pagina php
URL: //79.114.46.127:5819/
Scriptul pe care...
Ultimul mesaj
Imi pare rau, mai mult nu stiu cum sa te ajut, posibil sa fie ceva cu SSL, dar nu cunosc.
Am testat scripturile; codul cu cURL e bun, a mers bine...
- load time - idle mare - pagina principala
Discutii si Intrebari Diverse
Primul mesaj
Salut,
cu inspect-ul din Chrome si apoi tab-ul Performance se pot vedea timpii de incarcare ai unei pagini web.
Am cate o pagina principala pe...
Ultimul mesaj
Iata ce am gasit pe internet:
This is idle time, the time when the browser is waiting on the CPU or GPU to do some processing.
I can't find any...