Jump to content
php.lv forumi

Recommended Posts

Posted

Sveiki! Es te cīnos un un īsti netieku skaidrībā!

no datubāzes izvad bildes:

<ul id="photolist">
<?php
if ($result = $db->query("select * from photos where cat='kids' order by aid desc")){
	if ($result->num_rows > 0){
		while ($data = $result->fetch_array()){
		?>
			<li class="ui-state-default" id="photo_<?php echo $data['pid']; ?>"><img src="../photos/300/<?php echo $data['name'];?>"/></li>
		<?php
		}
	}
}		
?>
<div class="fix"></div>
</ul>

jQuery:

jQuery(function(){
jQuery( "#photolist" ).sortable({
		update: function(event, ui){
			jQuery.post('save.php?w=sortable', { photos: jQuery('#photolist').sortable('serialize') }, function(re){
				console.log(re);
			});
		}	
	});
    	jQuery( "#photolist" ).disableSelection();
});

php:

if($w=='sortable'){

$photos = parse_str($_POST['photos'], $photoOrder);

	foreach ($photoOrder['photos'] as $key => $value) {	    
		$update = "update photos set sort='$key' where pid='$value'";
		$updated = mysqli_query($db,$update) or die("Error: ".mysqli_error($db));
			if (!$updated) {
				echo 'error';
			}
	}

}

Pārvietojot bildi console.log parād šo:

<br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home/ebphotog/public_html/adm/save.php</b> on line <b>168</b><br />
 
Kas tur pa vainu?
 
P.S. Paldies jau iepriekš!
  • Replies 49
  • Created
  • Last Reply

Top Posters In This Topic

Posted

Vaina tāda, ka foreacham tiek padots arguments, kas nav masīvs (vai kāds cits iterējams tips), ko arī tev kļūdas paziņojums pasaka!

 

Ver vaļā save.php 166 līniju un ar var_dump skaties kāds ir $_POST['photos'] mainīgais un kāpēc viņš netiek pārtaisīts var masīvu

Posted (edited)

Visticamāk jau vajag $photoOrder['photo'] (jo id="photo_pid") forīčā ne $photoOrder['photos']

Edited by indoom
Posted

Labi, paldies, strādā tagad, bet kā tagad izvadīt lai viņš rādā tā kā ir sakārtots?
šobrīd man ir šādi:

<ul id="photolist">
<?php
if ($result = $db->query("select * from photos where cat='kids' order by sort asc")){
	if ($result->num_rows > 0){
		while ($data = $result->fetch_array()){
		?>
			<li class="ui-state-default" id="<?php echo $data['pid']; ?>"><img src="../photos/300/<?php echo $data['name'];?>"/></li>
		<?php
		}
	}
}		
?>
<div class="fix"></div>
</ul>
Posted (edited)

Update kverijā nevajadzētu būt problēmai.

Nesmuki, protams, ka tu hardkodē variabļus, tas ir ļoti viegli eksploitojams, bet tehniski kverijs nav nepareizs. Vienīgi pid vērtībai nevajadzētu būt pēdiņās.

Tu salīdzināji ar AJAX aizsūtītos datus ar lapas output pēc refresh?

Edited by jurchiks
Posted

Update query ir šitais

 

$update = "update photos set sort='$key' where pid='$value'";

 

Paskatie kādas vērtības ir mainīgajam $key un $value

Iespējams, ka tu esi sajaucis vietām un vajag būt šitā

 

$update = "update photos set sort='$value' where pid='$key'";

Posted (edited)

Ja kaut kas nedarbojas ir jāskatās kādi dati nāk iekšā! Tas saucas debug/atkļūdošana.

 

 

var_dump($mainigais) būs tavs labākais draugs. Skaties, kur ienāk nepareizi dati

Edited by Kasspars

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...