Jump to content
php.lv forumi

Cibiņš

Reģistrētie lietotāji
  • Posts

    487
  • Joined

  • Last visited

Posts posted by Cibiņš

  1. Ok paldies, līdz tam viss strādā. Tagad nedalec, kā atspoguļot datus Checkoutā.

     

    Sesijā tiek ievadīts:

     

    $_SESSION['items'][$item_id] = array(array('properties' => array('szw' => $sz_w, 'szdr'=>$sz_dr, 'szsize'=> $sz_size, 'color'=>$color, 'exrcs'=>$ex_rcs, 'ccol'=>$ch_col, 'ccontr'=>$ch_contr ),'count' => $quantity));
    

     

    Ja izvadu ar

     

    echo $_SESSION['items']
    

     

    tad izvadās

     

    Array
    

     

    Kā izvadīt lai parādās atsevišķi tabulas veidā

     

    Opcija | Nosaukums | Platums | Augstums | Mērvienība | Krāsa | Tips | Subkrāsa | Kontrole | Daudzums |

    Dzēst | Nosauk | 250 | 460 | mm | Melns | Tips1 | Oranžs | Labā | 3 |

     

    Kur katrai kolonnai ir attiecīgais parametrs no no iepriekš kodā parādītās sesijas masīva pēc kārtas

    ???

  2. Lietotājs atver produktu no listes. Produkta skatā ir droplisti

     

    Skaits: forma;

    Izmērs-Platums x Augstums - formas (droplistos mērvienības mm, cm utt);

    Krāsa-droplists;

     

    Kur saglabāt šos parametrus, ja sesijā tiek ievadīts TIKAI produkta ID?

     

    Piem: izvēlēti produkti-ābols, apelsīns, banāns, respektīvi katram ir skaitilis ID-1,2,3

     

    Ja ir izvēlēti produkti-ābols, apelsīns, banāns, apelsīns, banāns tad skaitļi no ID sesijā tiek saglabāti 1,2,3,2,3 un cartā tiek izvadīts ka apelsīnu skaits ir 2 un banānu skaits ir 2.

     

    Tik nesaprotu kā pārveidot, kur uzglabāt no droplistiem un formām ievadītos parametrus, kā arī kā tiek salīdzināts, kuram produktam tie parametri ir.

     

    Šeit ir sample forma ko biju domājis, tik nesaprotu kā tāda strādā: http://www.tudorblinds.com/shop/viewdetails.asp?Product=Rio-Butter&catID=1&brandID=64&designID=7&colourID=730

     

    Varbūt kāds var parādīt tutorialu ar šo?

  3. Zinu ka daudzreiz šāda skābene ir ravēta šajā forumā, taču nevaru saprast kapēc serveris, uz kura ir uzstādīts CPANEL, kad lapā piemēram apgreido produkta statusu vai dzēš produktu, izmet erroru "Headers allready sent" un nerefrešo lapu, bet uz cita servera šo erroru nebliež ārā un viss notiek kā vajag - ieraksts tiek apgreidots vai dzēsts un lapa-norefrešota.

     

    Esmu ievērojis ka uz dažiem serveriem display_error iekš php.ini ir uzsetots uz OFF bet šim CPANEĻa serverim ir STDOUT tur kur vajadzētu būt ON vai OFF. Kā lai saprot kas pa sūdiem, ko vainot - serveri vai lapu? Jo kā jau minēju - uz citiem serveriem šī lapa iet bez problēmām.

     

    Savāda ir arī failu ņemšana no direktorijām uz tā CPANEĻa servera, ka visu laiku jāliek absolūto faila novietojumu. nevis relatīvo. Piem includi gļuko tad jāliek ir absolūto faila novietojumu..

  4. Daaa sapratu..

     

    $qryimgs = mysql_query("SELECT * FROM imgs WHERE images_hash = '".$stripslashed_hash_new."' ORDER BY images_upload_time ASC LIMIT 1")or die(mysql_error());<pre class="prettyprint">extract(mysql_fetch_array($qryimgs), EXTR_PREFIX_ALL, 'imga');

    </pre>

    vajadzēja aizvietot ar

    $qryimgs = mysql_query("SELECT * FROM imgs WHERE images_hash = '".$prod_hash."' ORDER BY images_upload_time ASC LIMIT 1")or die(mysql_error());
    $row = mysql_fetch_assoc($qryimgs);
    echo $row["imagename"]
    

  5. Man ir divas tabulas.

     

    Viena, kurā glabājās dati, bet otra, kurā glabājās bildes. Chekošana notiek pēc hash. Diemžēl nesaprotu, kādēļ dati no imgs tabulas netiek izvadīti atbilstoši hash kontrolcipariem uz katru produktu?

     

      	             while ($row_category = mysql_fetch_assoc($query_prod)) {
    
      		             $prod_name=$row_category['prod_name'];
      		             $prod_description=$row_category['prod_description'];   		             
      	             	$prod_hash=$row_category['prod_hash'];
    
      		             $escaped_product_name=mysql_real_escape_string($prod_name);
      		             $escaped_product_description=mysql_real_escape_string($prod_description);   		             
      	             	$escaped_prod_hash=mysql_real_escape_string($prod_hash);
    
      		             $stripslashed_product_name=stripslashes($escaped_product_name);
      		             $stripslashed_product_description=stripslashes($escaped_product_description);   		             
      	             	$stripslashed_hash_new=stripslashes($escaped_prod_hash);
    
      		             $qryimgs = mysql_query("SELECT * FROM imgs WHERE images_hash = '".$stripslashed_hash_new."' ORDER BY images_upload_time ASC LIMIT 1")or die(mysql_error());
      	             	extract(mysql_fetch_array($qryimgs), EXTR_PREFIX_ALL, 'imga');
    
    

     

    Ja piemēram liekam chekošanu vai ir vai nav attēls, tas sāk gļukot tiklīdz ir pievienoti vismaz divi ieraksti produktu tabulā.

     

    if(!$imga_imagename){ ?><img src="bildes_path/navbilde.jpg" /><? } else { ?><img src="bildes_path/<? echo $imga_imagename; } ?>" />
    

     

    Kā lai palaiž kvēriju lai izvelk attiecīgo pēdējo pievienoto bildi un tabula negļukotu, tas ir, ja imgs tabulā nav bilžu attiecīgajam produktam, lai atspoguļo navbilde.jpg nevis taisa kosmiskus prikolus un vanda lapu ja abās tabulās ir vairāk bildes un produkti?

  6. A nah viņš tagad dublicē ierakstus??

     

    <?
    $query = mysql_query("SELECT * FROM table WHERE active = '1' ORDER BY add_date ASC")or die(mysql_error());
    if (!mysql_num_rows($query)) { ?>   
    <li>Nav datu!</li>
    <? }else {   
    $values=array('item', 'item last');    
    $i=0;   
    while ($row = mysql_fetch_assoc($query)){       
    $name=$row['vards'];        
    $esc_name=mysql_real_escape_string($name);                           	   
    $stripsl_name=stripslashes($esc_name);       
    foreach ($values as $value){        
    $i++;
    ?>    
    <li class="<? echo $value; ?>"><? echo $stripsl_name; ?></li>
    <?        }    }}?>
    

  7. Pašlaik man ir šāds skripts

    <?
    $query = mysql_query("SELECT * FROM table WHERE active = '1' ORDER BY add_date ASC")or die(mysql_error());
    if (!mysql_num_rows($query)) { ?>
       <li>Nav datu!</li>
    <? }
    else {
       while ($row = mysql_fetch_assoc($query)) {
           $name=$row['vards'];
           $esc_name=mysql_real_escape_string($name);               	     
           $stripsl_name=stripslashes($esc_name);
    
    ?>
       <li class="pamatklase"><? echo $stripsl_name; ?></li>
    <?
       }
    }
    ?>
    

     

    Ja ieraksti ir 6, tad izvada

    <li class="klase first">Vards 1></li>
    <li class="klase first">Vards 2></li>
    <li class="klase first">Vards 3></li>
    <li class="klase first">Vards 4></li>
    <li class="klase first">Vards 5></li>
    <li class="klase first">Vards 6></li>
    

     

    Kā panākt lai veidotos šāds skripts

    <li class="klase first">Vards 1></li>
    <li class="klase last">Vards 2></li>
    <li class="klase first">Vards 3></li>
    <li class="klase last">Vards 4></li>
    <li class="klase first">Vards 5></li>
    <li class="klase last">Vards 6></li>
    

     

    kur katram otrajam pirmajam ierakstam tiek piešķirta klase "first" un katram otrajam-"last"??

  8. Nedalec kapēc nedzēš folderi. Lapas sākumā ir error_report debugeris tik visu laiku izsviež baltu lapu un nekādas kļūdas neuzrāda.

     

    Funkcijā tiek padots

     

    $content_path='../media/site-images/';
    $token=$_GET['tkn'];
    
    if($op == 'delete'){
    delete_content($content_path.$token);
    }
    

     

    Pati funkcija

     

    function delete_content($dirname) {
    if (is_dir($dirname))
       	$dir_handle = opendir($dirname);
    if (!$dir_handle)
       	return false;
    while($file = readdir($dir_handle)) {
       	if ($file != "." && $file != "..") {
           	if (!is_dir($dirname."/".$file))
               	unlink($dirname."/".$file);
           	else
               	delete_directory($dirname.'/'.$file);     	 
       	}
    }
    closedir($dir_handle);
    rmdir($dirname);
    return true;
    }
    

  9. Nu aptuveni +/- sapratu bet manuprāt ka to fade-off vajag gan. Kā jau minēju, ka pašlaik tiem datiem, kas jau ir datubāzē, ir piesaistīta zemākesošā funkcija

      $(function() {        $(".delete").click(function() {         	var upldimages = $(this).parent();         	var id = $(this).attr("id");         	var string = 'id='+ id ;             	$.ajax({                 	type: "POST",                         	success: function(){                         	upldimages.fadeOut('slow', function() {$(this).remove();});                         	}         	});         	return false;        });    });
    

     

    Taču kad attēlu uploado, fonā ir zaļa krāsa ka attēls ir uploadots. Teorētiski viss tas pats kas esošajiem ierakstiem db tikai nez kapēc augstākminētajai funkcijai neklausa. Gribētos jau ar to feidu labāk tik nesaprotu kapēc pie uploada ID neklausa..jo .delete jau ir norādīts. Respektīvi zemākesošajai f-jai

     

     $(function(){        var btnUpload=$('#upload');        var status=$('#status');        new AjaxUpload(btnUpload, {         	action: 'upload-file.php',         	name: 'uploadfile',         	onSubmit: function(file, ext){                        if (! (ext && /^(jpg|png|jpeg)$/.test(ext))){ // Allowed extensions                         	alert('Only JPG or PNG images allowed');                         	return false;                 	}                 	status.text('Uploading...');         	},         	onComplete: function(file, response){                 	//When ready, remove statuss                 	status.text('');                 	//Uploaded file added to list                 	if(response==="success"){                         	$('<li></li>').appendTo('#files').html('<a class="img-delete delete" href="#" onclick="nos_dz(\''+file+'\');"></a><img src="./uploads/'+file+'" alt="" /><br />'+file).addClass('upldimages success');                 	} else{                         	$('<li></li>').appendTo('#files').text(file).addClass('error');                 	}                 	alert('Success');         	}        });    });
    

     

    te kautkas ir neriktīgi

     

    if(response==="success"){                         	$('<li></li>').appendTo('#files').html('<a class="img-delete delete" href="#" onclick="nos_dz(\''+file+'\');"></a><img src="./uploads/'+file+'" alt="" /><br />'+file).addClass('upldimages success');                 	}
    

    a klasei jau ir delete un tam fade būtu jāizpildās..jo vismaz kā jau minēju, ja lapu refrešo, esošajiem ierakstiem no DB tas feids strādā.

  10. Ok nebrēcam viss ar to dzēšanu strādā. Tagad ieskāba kārtējā problēma. Kā ļaut fade-out ja attēls tiek dzēsts pie uploada funkcijas, tas ir, ja attēls tiek augšupielādēts, tas parādās uz zaļa fona pašlaik, ja uzklikšķina "dzēst" tad tas nodzēšās no datubāzes un arī attēlu novāc. Tik nepatīk ka attēls lapā paliek un lapa jārefrešo lai tas pazustu. Gribējās pie delete likt fade out. Pašlaik esošais fade out darbojas pie lapas refrešošanas un ieraksta dzēšanas jau esošajos datos, kuri atrodas tabulā. Bet gribas lai uzreiz pie uploada ja attēls ir augšupielādēts, tad ja tas uzreiz tiek dzēsts tad darbojas fade-out.

     

    <script type="text/javascript" >
       $(function() {
           $(".delete").click(function() {
      	     var upldimages = $(this).parent();
      	     var id = $(this).attr("id");
      	     var string = 'id='+ id ;
    
      	     $.ajax({
         		     type: "POST",
     			     success: function(){
      			     upldimages.fadeOut('slow', function() {$(this).remove();});
    			     }
      	     });
      	     return false;
           });
       });
    
       function nos_dz(id_d){
           $.post("delete.php", {nos_dz:""+id_d+""}, function(data){
      	     $('#f_nosaukums').html(data);
       	});
       }
    
       $(function(){
           var btnUpload=$('#upload');
           var status=$('#status');
           new AjaxUpload(btnUpload, {
      	     action: 'upload-file.php',
      	     name: 'uploadfile',
      	     onSubmit: function(file, ext){
      		  	if (! (ext && /^(jpg|png|jpeg)$/.test(ext))){ // Allowed extensions
      			     alert('Only JPG or PNG images allowed');
      			     return false;
      		     }
      		     status.text('Uploading...');
      	     },
      	     onComplete: function(file, response){
      		     //When ready, remove statuss
      		     status.text('');
      		     //Uploaded file added to list
      		     if(response==="success"){
      			     $('<li></li>').appendTo('#files').html('<a class="img-delete delete" href="#" onclick="nos_dz(\''+file+'\');"></a><img src="./uploads/'+file+'" alt="" /><br />'+file).addClass('upldimages success');
      		     } else{
      			     $('<li></li>').appendTo('#files').text(file).addClass('error');
      		     }
      		     alert('Success');
      	     }
           });
       });    
    </script>
    

  11. $protected_filename ir strings, taatad ir jaaliek peedinjaas (nos_dz('<?php echo $protected_filename; ?>')). Ar $protected_id straadaa, jo tas ir int.

     

    Eniivei $.click() > onclick

     

     

    P.S.

     

    Kad saka debugo, tad debugo arii JS...

     

    aa losis es! LIELS Paldies, tagad viss kaa vaig! :)

  12. Nu debugo!

     

    Vai kods izpildās līdz vietai kur tiek izpildīts kverijs?

    Vai kverijā padoties ID ir tāds kādam tam ir jābūt?

    Vai tabulas un kolonas nosaukums ir pareizs?

    Vai datubāzē ir ieraksts kas atbilst kverijam?

    Vai tas ir tas ieraksts, ko patiešām mēģini izdzēst?

     

    Tāds būtu mans domu gājiens... :)

     

    Tur tā lieta ka izdebugojos līdz vēmienam un neredzu kļūdas vai arī nesaprotu kur tā kļūda ir! Kvērijs netiek izpildīts un izskatās ka līdz tam delete.php failam vispār nenonāk, jo netiek atgriezts echo iekš

     

    <div id="f_nosaukums"></div>
    

     

    Bet ja nomainam delete.php failā

     

    WHERE filename='".$id."'
    

     

    uz

     

    WHERE id='".$id."'
    

     

    un listē

     

    onclick="nos_dz(<? echo $protected_filename; ?>);

     

    uz

     

    onclick="nos_dz(<? echo $protected_id; ?>);

    tad viss notiekās. Vismaz echo vajadzētu strādāt iekš

     

    <div id="f_nosaukums"></div>
    

  13. kam šīs rindiņas vajadzīgas?

    $protected_filename=mysql_real_escape_string($filename);
    $protected_id=mysql_real_escape_string($id);
    $protected_filename=stripslashes($filename);
    $protected_id=stripslashes($id);
    

     

    Lab tas pofig uzliku arī bez tām rindiņām tāpat ne silts ne auksts. Darbība nekāda!

  14. a tagu uztaisi kautvai šādi

    <a class="img-delete delete" href="#" onclick="nos_dz(<? echo $protected_id; ?>);">Delete</a>
    

     

    javascripts:

    function nos_dz(id_d){
    $.post("f_dati.php", {nos_dz:""+id_d+""}, function(data){
       	$('#f_nosaukums').html(data);
    });
    alert("Tika izdzēsts");
    }
    

     

    f_dati.php:

    if(isset($_POST["nos_dz"])){
    //tava mysql dzēšanas f-ja
    $id = $_POST["nos_dz"];
    $q = mysql_query("DELETE FROM files_images WHERE id=".$id." ") or die(mysql_error());
    }
    

     

    Negarantēju, bet vari pamēģināt šādi ar vienkāršu JS. Iekš html-> #f_nosaukums izvadīs kādu info no f_dati.php, kā piemēru vari lietot echo "Test";

     

    Man strādāja! Tik jāpakustina pelēci :D

     

     

    Šis superīgi strādā, tikai tagad atkal nerubiju, kapēc tagad padodot filename uz funkciju nedzēš datus?? Piem padodam vērtību 46513213.jpg..

     

    Liste

    <ul id="files">
       <?
       $query=" SELECT * FROM files_images ORDER BY upload_time";
       $result=mysql_query($query);
       while($r=mysql_fetch_array($result))
              {
       	$filename=$r["filename"];
           $id=$r["id"];
    
           $protected_filename=mysql_real_escape_string($filename);
           $protected_id=mysql_real_escape_string($id);
    
           $protected_filename=stripslashes($filename);
           $protected_id=stripslashes($id);        
    
       ?>
       <li style="float: left;" class="upldimages">
           <a class="img-delete delete" href="#" onclick="nos_dz(<? echo $protected_filename; ?>);"></a>
           <img src="./uploads/<? echo $protected_filename; ?>" />
       </li>
    <? } ?>
    </ul>
    

     

    Javascripts

    $(function() {
           $(".delete").click(function() {
               var upldimages = $(this).parent();
               var id = $(this).attr("id");
               var string = 'id='+ id ;
    
               $.ajax({
         	         type: "POST",
     		         success: function(){
      		         upldimages.fadeOut('slow', function() {$(this).remove();});
    	         }
               });
               return false;
           });
       });
    
       function nos_dz(id_d){
           $.post("delete.php", {nos_dz:""+id_d+""}, function(data){
               $('#f_nosaukums').html(data);
       	});
       }
    

     

    Delete.php

     

    ini_set('display_errors', 'on');
    error_reporting(E_WARNING);
    
    include('mysql.class.php');
    include('global.inc.php');
    
    if(isset($_POST["nos_dz"])){
    //tava mysql dzēšanas f-ja
       $id = $_POST["nos_dz"];
       $q = mysql_query("DELETE FROM files_images WHERE filename=".$id." ") or die(mysql_error());
    }
    

  15. Nevaru iebraukt, kādēļ tā..

     

    Ir liste ar datiem.

     

    <ul id="files">
       <?
       $query=" SELECT * FROM files_images ORDER BY upload_time";
       $result=mysql_query($query);
       while($r=mysql_fetch_array($result))
     		 {
       	$filename=$r["filename"];
      	 $id=$r["id"];
    
      	 $protected_filename=mysql_real_escape_string($filename);
      	 $protected_id=mysql_real_escape_string($id);
    
      	 $protected_filename=stripslashes($filename);
      	 $protected_id=stripslashes($id);   	 
    
       ?>
       <li style="float: left;" class="upldimages">
      	 <a class="img-delete delete" href="#" id="<? echo $protected_id; ?>">Delete</a>
      	 <img src="./uploads/<? echo $protected_filename; ?>" />
       </li>
    <? } ?>
    </ul>
    

     

    Uzklikšķinot linku "Delete" būtu jānostrādā šai funkcijai

    $(function() {
      	 $(".delete").click(function() {
      		 var upldimages = $(this).parent();
      		 var id = $(this).attr("id");
      		 var string = 'id='+ id ;
    
      		 $.ajax({
         			 type: "POST",
      			 URL: "delete.php",
     				 data: string,
         			 cache: false,
     				 success: function(){
      				 upldimages.fadeOut('slow', function() {$(this).remove();});
        			 }
      		 });
      		 return false;
      	 });
    

     

    uz

     

    
    ini_set('display_errors', 'on');
    error_reporting(E_WARNING);
    
    include('mysql.class.php');
    include('global.inc.php');
    
    echo $_POST['id'];
    
    $sql = "DELETE FROM files_images WHERE id=".$_POST['id'];
    $result = mysql_query($sql);
    

     

    Bet ieraksts nedzēšās :( Izdebugojos līdz vēmienam, bez rezultātiem :(

  16. Nē tomēr atkal kad ieliek piem neatļauto eiro simbolu pa vidu, t.i inputs ir "Test category € 1 pagename" izvadās "test-category--1-pagename" :( Bet nobeigumā kā iepriekš bija tā problēma ir atrisināta, beigās vairs tas simbos nav!

     

    $fixpound= str_replace("£", "£", $categories_pagename);
       $fixeur = str_replace("€", "€", $fixpound);
       $remove_symbols = preg_replace("/[^a-zA-Z0-9\s\.\/:!\[\]\*\+\-\|\<\>@#\$%\^&\(\)_=\';,'\?\\\{\}`~\"]/", '', $fixeur);
       $lowercase = strtolower($remove_symbols);
       $lowercase = trim($lowercase);
       $replace_spaces = str_replace(' ', '-', $lowercase);
       $remove_tags=strip_tags($replace_spaces);
    

×
×
  • Create New...