Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema con Array PHP

  1. #1

    Problema con Array PHP

    ciao a tutti,avrei un problema con un array PHP gestito con delle chiamate AJAX.
    In sostanza il problema è questo:
    all'avvio della mia index.php creo un array vuoto chiamato $videoArray in questo modo:

    $videoArray = array();

    bene ora con una chiamata Ajax all'interno della pagina mi richiamo un file che mi deve inserire il contenuto di una textbox
    in un array e restituirmi la lunghezza dello stesso in un div

    la chiamata Ajax è la seguente:
    Codice PHP:
           if(xmlHttp.readyState == || xmlHttp.readyState == 0)
           {
              
    xmlHttp.open("GET","../_script/_addVideoEmbed.php?page="+rPage+"&rRpg="+rRpg+"&videoName="+nameVideo+"&videoUrl="+urlVideo+"&typeOp="+typeOp,true);
              
    xmlHttp.onreadystatechange InsertVideoResponse;
              
    xmlHttp.send(null);
           } 
    e ricevendo i dati dal file _addVideoEmbed.php voglio inserire il link e il nome nell'array precedentemente creato facendomi restituire la lunghezza:
    Codice PHP:
            if($typeOp == 1){
                
    array_unshift($videoArray,array('videoName' => $nameVideo'videoUrl' => $link));
            }
        
        
    $countVideoArray count($videoArray); 
    praticamente mi restituisce sempre 0
    dove sbaglio??

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    credo di aver capito dove sbagli

    posta tutto il codice, in particolare la parte in cui vai a mettere il risultato dello script chiamato in modo asincrono nel div

  3. #3
    allora innanzitutto dopo aver fatto il count dell'array faccio semplicemente un controllo per la creazione di un
    messaggio

    Codice PHP:
        if($countVideoArray == 0)
            
    $totMessageVideo "<span style=\"font-size:12px;color:#FFF;\">[b]Nessun video Aggiunto[/b]</span>";
        else
            
    $totMessageVideo "<span style=\"font-size:12px;color:#FFF;\">[b]Riepilogo video aggiunti ($countVideoArray)[/b]</span>"

    e poi per ultimo mi creo la variabile che darò in output al div:
    Codice PHP:
            $response="
            
    $totMessageVideo

            countVideoArray vale 
    $countVideoArray 

            <table align=\"center\">
            <tr bgcolor=\"#CC9933\" align=\"center\" ><td width=\"700\">
    $videoEmbed</td></tr>
            <tr bgcolor=\"#CC9933\" align=\"center\" ><td width=\"700\">
    $nameVideo</td></tr>
            <a href=\"#\" onclick=\"InsertVideo(2,1,0)\">clicca</a>
            </table> "
    ;
            
            echo
    "$response"

    nel file che invece ha fatto la richiesta e che mi aggiorna il contenuto del div ho messo questo:
    codice:
      function InsertVideoResponse()
      {
    	if(xmlHttp.readyState == 4)
    	{
    		if(xmlHttp.status == 200)
    		{
    			responseInsertVideo = xmlHttp.responseText;
    			document.getElementById("skVideoContent").innerHTML=responseInsertVideo;
    		}
    		
    		else
    		{
    			alert("C'è stato un problema nell'accesso al server:" + xmlHttp.statusText);
    		}
    	}
      }

    Non mi sembra di manipolarlo in qualche modo quel risultato...

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    così a occhio sembra tutto corretto, ma non so se leghi bene le operazioni che fai.....
    non scrivere pezzi di codici ma posta gli interi file (che saranno 2 o 3 suppongo, la pagina che contiene il div poi _addVideoEmbed.php ed un eventuale file js)

  5. #5
    allora ho messo un pochino di cose a posto e ora funziona!!!!
    se l'array non esiste me lo crea e poi mi mette la variabile con la funzione array_unshift
    solo che ho un problema..se io nella mia pagina inserisco nuovamente un record e quindi mi fa una nuova chiamata asincrona
    succede che mi sovrascrive il record..praticamente è come se mi creasse ogni volta il record!
    c'è un modo per ovviare a questo problema?

    il codice è il seguente:
    Codice PHP:
        if(!$videoArray)
            
    $videoArray = array();

            
            if(
    $typeOp == 1){
                
    array_unshift($videoArray,array('videoName' => $nameVideo'videoUrl' => $link));
            }


        
    print_r($videoArray);

        
    $countVideoArray count($videoArray);
        if(
    $countVideoArray == 0)
            
    $totMessageVideo "<span style=\"font-size:12px;color:#FFF;\">[b]Nessun video Aggiunto[/b]</span>";
        else
            
    $totMessageVideo "<span style=\"font-size:12px;color:#FFF;\">[b]Riepilogo video aggiunti ($countVideoArray)[/b]</span>"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.