PHP gevorderde |
|
Beste allemaal,
Ik ben bezig met het maken van een cms gebasseert op jQuery.
Hier onder staat de code(twee functie waar het om draait), daarna zal ik aangeven wat er fout gaat.
function getAjaxRequest(type, obj){
jQuery.post("../../include/service.php", // URL
obj, // Object
function(data){
if (type == 'menu') {
buildMenu(data);
}
if (type == 'overview') {
//alert(1);
buildOverview(data);
}
if (type == 'interface') {
buildInterface(data);
}
}, "json" // Callback
);
}
jQuery.post("../../include/service.php", // URL obj, // Object function(data){ if (type == 'menu') { buildMenu(data); } if (type == 'overview') { //alert(1); buildOverview(data); } if (type == 'interface') { buildInterface(data); } }, "json" // Callback ); }
bovenstaande functie haalt JSON op en roept de juiste functie aan om dit te verwerken.
function buildOverview(data){
var html = '';
html += '<a href="#" onclick="return false;" title="Nieuw" id="newItem"><img src="/img/new_page-32.png" /></a><a href="newFolder" onclick="return false;" title="Nieuwe map" id="newFolder"><img src="/img/folder_add-32.png"/></a><hr/>';
html += '<div class="newItem">';
html += '<form method="post" action="">';
html += '<label>Nieuw item:</label><input name="addItem" type="text"><br />';
html += '<input id="addItem" type="submit" onclick="return false;" value="verzend" />';
html += '</form>';
html += '</div>';
html += '<div class="newFolder">';
html += '<form method="post" action="">';
html += '<label>Nieuwe map:</label><input name="addFolder" type="text"><br />';
html += '<input id="addFolder" type="submit" onclick="return false;" value="verzend" />';
html += '</form>';
html += '<hr>';
html += '</div>';
html += '<table class="tablesorter" id="sorter">';
html += '<thead>';
html += '<tr>';
html += '<th>Type</th>';
html += '<th>Id</th>';
html += '<th>Title</th>';
html += '<th>Gemaakt</th>';
html += '<th>Acties</th>';
html += '</tr>';
html += '</thead>'
html += '<tbody>';
jQuery.each(data, function(i, item){
if (item.isagroup == 'true') {
html += '<tr>';
html += '<td class="image"><img alt="folder" src="/img/folder-16.png"/></td>';
html += '<td class="id">' + item.id + '</td>';
html += '<td class="title">' + item.title + '</td>';
html += '<td class="created">' + item.created + '</td>';
html += '<td><a href="http://www.startpagina.nl/" title="Edit"><img src="/img/page_edit-16.png"/></a><a id="deleteFolder" onclick="return false" href="' + item.id + '" title="Delete"><img src="/img/delete-16.png"/></a></td>';
html += '</tr>';
}
else {
html += '<tr>';
html += '<td class="image"><img alt="page" src="/img/new_page-16.png"/></td>';
html += '<td class="id">' + item.id + '</td>';
html += '<td class="title">' + item.title + '</td>';
html += '<td class="created">' + item.created + '</td>';
html += '<td><a href="http://www.startpagina.nl/" title="Edit"><img src="/img/page_edit-16.png"/></a><a href="/{$url.1}/delete/{$item.id}/" title="Delete"><img src="/img/delete-16.png"/></a></td>';
html += '</tr>';
}
});
html += '</tbody>';
html += '</table>';
jQuery('#port2').html(html);
jQuery("#sorter").tablesorter();
}
function buildOverview(data){ var html = ''; html += '<a href="#" onclick="return false;" title="Nieuw" id="newItem"><img src="/img/new_page-32.png" /></a><a href="newFolder" onclick="return false;" title="Nieuwe map" id="newFolder"><img src="/img/folder_add-32.png"/></a><hr/>'; html += '<div class="newItem">'; html += '<form method="post" action="">'; html += '<label>Nieuw item:</label><input name="addItem" type="text"><br />'; html += '<input id="addItem" type="submit" onclick="return false;" value="verzend" />'; html += '</form>'; html += '</div>'; html += '<div class="newFolder">'; html += '<form method="post" action="">'; html += '<label>Nieuwe map:</label><input name="addFolder" type="text"><br />'; html += '<input id="addFolder" type="submit" onclick="return false;" value="verzend" />'; html += '</form>'; html += '<hr>'; html += '</div>'; html += '<table class="tablesorter" id="sorter">'; html += '<thead>'; html += '<tr>'; html += '<th>Type</th>'; html += '<th>Id</th>'; html += '<th>Title</th>'; html += '<th>Gemaakt</th>'; html += '<th>Acties</th>'; html += '</tr>'; html += '</thead>' html += '<tbody>'; jQuery.each(data, function(i, item){ if (item.isagroup == 'true') { html += '<tr>'; html += '<td class="image"><img alt="folder" src="/img/folder-16.png"/></td>'; html += '<td class="id">' + item.id + '</td>'; html += '<td class="title">' + item.title + '</td>'; html += '<td class="created">' + item.created + '</td>'; html += '<td><a href="http://www.startpagina.nl/" title="Edit"><img src="/img/page_edit-16.png"/></a><a id="deleteFolder" onclick="return false" href="' + item.id + '" title="Delete"><img src="/img/delete-16.png"/></a></td>'; html += '</tr>'; } else { html += '<tr>'; html += '<td class="image"><img alt="page" src="/img/new_page-16.png"/></td>'; html += '<td class="id">' + item.id + '</td>'; html += '<td class="title">' + item.title + '</td>'; html += '<td class="created">' + item.created + '</td>'; html += '<td><a href="http://www.startpagina.nl/" title="Edit"><img src="/img/page_edit-16.png"/></a><a href="/{$url.1}/delete/{$item.id}/" title="Delete"><img src="/img/delete-16.png"/></a></td>'; html += '</tr>'; } }); html += '</tbody>'; html += '</table>'; jQuery('#port2').html(html); jQuery("#sorter").tablesorter(); }
Bovenstaande functie bouwt het overzicht.
getAjaxRequest('overview', params);
getAjaxRequest('overview', params);
Zo wordt de functie aangeroepen.
Wat er gebeurd is het volgende:
Er wordt twee keer achter elkaar de POST uitgevoerd. de eerste keer gaat het goed en komt het juiste terug. de tweede keer wordt de POST uitgevoerd met geen parameters en gaat het dus fout.
Nu is de vraag, waarom wordt de POST twee keer uitgevoerd en niet gewoon 1 keer?
Hopelijk weet iemand wat er fout gaat, of kan iemand zeggen hoe het anders kan maar dan goed.
Roy
|