Redirectionare in Ajax dupa un succes in PHP
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
cadou
- Mesaje:328
Redirectionare in Ajax dupa un succes in PHP
am in fisierul care executa comanda asa:
Cod: Selectaţi tot
<?php session_start(); include('../conectare.php'); $allowtype = array('jpg', 'jpeg');
if(isset($_FILES['myfile']))
{
if($_FILES['myfile']['name'] == '')
{ $rezultat = '<img src=/imagini/stare-error.png> <font color=red>Alege o poza!</font>'; }
else if(strlen($_FILES['myfile']['name']) > 2)
{
if (isset($_FILES['myfile'])) {
$type = end(explode(".", strtolower($_FILES['myfile']['name'])));
if (in_array($type, $allowtype)) {
if ($_FILES['myfile']['error'] == 0) {
$cerereidpoza = mysql_query("SELECT * FROM membri ORDER BY id DESC LIMIT 1");
$cerereidpozarez = mysql_fetch_assoc($cerereidpoza);
$idx = $cerereidpozarez['id'];
$numex = $cerereidpozarez['nume'];
$folder = '../users/poza-profil/';
$thefile = $folder . $idx. '.'. $type;
if (!move_uploaded_file ($_FILES['myfile']['tmp_name'], $thefile)) {
$rezultat = '<img src=/imagini/stare-error.png>
Sa intamplat ceva, nu stiu ce este, revin-o peste cateva minute pentru a
adauga poza de profil! Daca problema persista contacteaza-ne!';
}
else {
$rezultat = '<img src="/imagini/stare-succes.png">
<font color=green>Poza ta de profil a fost incarcata cu succes </font>
';
}
}
}
else { $rezultat = '
<br><font color=red> <img src=/imagini/stare-error.png>
Fisierul <font color=blue>'. $_FILES['myfile']['name']. '</font>
nu are tipul de extensie permis, se accepta doar format .jpg</font>'; }
}
}
}
$rezultat = urlencode($rezultat);
echo '<body onload="parent.doneloading(\''.$rezultat.'\')"></body>';
?>
dar la mesajul de succes vreau un redirect.
am incercat asa:
si
Cod: Selectaţi tot
<meta http-equiv="refresh" content="1;url=/adresa.php" />
Nici una nu da rezultate, ce sa fac ?
Codul merge totul e ok la el, dar vroiam un redirect dupa mesajul de succes
MarPlo
Mesaje:4343
Redirectul din Ajax se face in codul JavaScript (cu: window.location = 'adresa';), in functie de raspunsul de la server, care se verifica in functia Ajax.
cadou
Mesaje:328
Am incercat ceva de genu in javascript
Cod: Selectaţi tot
<script type="text/javascript"><!--
function uploadimg(theform){
theform.submit();
setStatus("<br><img src=/imagini/stare-loading.gif> <font color=orange>Te rugam asteapta pana cand se incarca poza, poate dura pana la 1 - 2 minute maxim 5 minute in functie de viteza ta la internet!</font>", "showimg");
return false;
}
function doneloading(rezultat) {
rezultat = decodeURIComponent(rezultat.replace(/\+/g, " "));
document.getElementById('showimg').innerHTML = rezultat;
// de aici am modificat //
if(rezultat = '<img src="/imagini/stare-succes.png"> <font color=green>Poza ta de profil a fost incarcata cu succes </font>')
{
window.location = 'test.php';
}
// pana aici am modificat //
}
function setStatus(theStatus, theloc) {
var tag = document.getElementById(theloc);
if (tag) {
tag.innerHTML = '<b>'+ theStatus + "</b>";
}
}
//-->
</script>
Dar face imediat redirectul dupa ce se intra pe pagina respectiva
MarPlo
Mesaje:4343
E gresala la if().
Conditia de egalitate se verifica cu 2 (sau 3) egaluri:
Cod: Selectaţi tot
if(variabila == 'valoare') {
// cod de procesat
}
cadou
Mesaje:328
Am facut o gramada de modificari, tot nu am reusit .
MarPlo
Mesaje:4343
Probabil sirul primit de la PHP nu este exact /identic cu cel comparat. Poate fi deosebire si de un spatiu sau tip de caracter.
In acest caz se verifica o parte din acel sir, cu match(), search(), sau de exemplu cu indexOf().
Cod: Selectaţi tot
var rezultat = '<img src="/imagini/stare-succes.png"> ...';
if(rezultat.indexOf('stare-succes.png') != -1) { window.location = 'https://coursesweb.net/'; }