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:

Cod: Selectaţi tot

header("Location: /adresa.php");
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/'; }