Div verschieben (Pos. ändern) und neue Position in MySQL speichern

Wie kann ich bei einem Klick einen Parameter übergeben?


Habe jetzt ein FadeOut eingebaut, jedoch blendet er alle 3 Widgets aus.


Habe die ID's der Widgets-container immer so:
<div id="widget_1/2/3/4"> etc.


Diese Funktion im Header:
Code:
$(function() 
			{
				//run the currently selected effect
				function runEffect(){
					//set effect
					var selectedEffect = 'blind';
				
					//most effect types need no options passed by default
					var options = {};
	
				
					//run the effect
					$("#col1_content div.widget").hide(selectedEffect,options,500,callback);
				};
			
				//callback function to bring a hidden box back
				
				function callback()
				{
				//	setTimeout(function(){
					//	$("#effect:hidden").removeAttr('style').hide().fadeIn();
				//	}, 1000);
				};
			
				//set effect from select menu value
				$("#closewidget").click(function() 
				{
					runEffect();
					return false;
				});

			});


Wie kann ich jetzt sagne, er soll z.B.: nur widget_3 ausblenden?
 
Hi,

IDs müssen innerhalb eines Dokuments eindeutig sein. Du solltest also aus der ID closewidget eine Klasse machen.
Code:
<div class="widget" id="2">
  <div class="wheader">
    <div class="wmenu">
      <a href="#"><img src="templates/standard/images/gearwheel.png" /></a>
      <a href="#" class="closewidget ui-state-default ui-corner-all"><img src="templates/standard/images/closex.png" /></a>
    </div>
    <h1>Postings</h1>
  </div>
  <div class="wcontent">asdlasdasdasdasd</div>
  <div class="wfooter">&nbsp;</div>
</div>

Im click-Event übergibst du der Funktion runEffect die Referenz aufs zugehörige Widget-Element. Diese wird mit Hilfe der Methode parents ermittelt, die als Selektor die Klasse .widget erhält.
Code:
$(function() {
  function runEffect(_this){
    //set effect
    var selectedEffect = 'blind';

    //most effect types need no options passed by default
    var options = {};

    //run the effect
    $(_this).hide(selectedEffect,options,500,callback);
  };

  //callback function to bring a hidden box back
  function callback(){
    //	setTimeout(function(){
    //	$("#effect:hidden").removeAttr('style').hide().fadeIn();
    //	}, 1000);
  };

  //set effect from select menu value
  $(".closewidget").click(function(){
    runEffect($(this).parents('.widget'));
    return false;
  });
});

Ciao
Quaese
 
Ah ok, das verstehe ich.


Ich muss mich mal mit dem jQuery genauer beschäftigen, denn durch ein paar Sachen blicke ich noch nicht durch.


Habe z.B.: jetzt versucht, den zugehörigen Eintrag aus der Datenbank zulöschen.

Code:
function runEffect(_this){
   						//set effect
   						var selectedEffect = 'blind';

   						//most effect types need no options passed by default
   						var options = {};

  						//run the effect
   						//$("#col1_content div.widget").hide(selectedEffect,options,500,callback);
						$(_this).hide(selectedEffect,options,500,callback);
						
						$.ajax({
							type:	'post',
							url:	'testing.php?todo=remove',

							data: {
								widget: 	'1',
								todo: 		'remove',
							},
						
					
						});
 					};


Das funktioniert, solange dort bei "widget: 1" die 1 steht, oder eine andere ID des Widgets, welches ich löschen will. Aber dynamisch übergeben? Hab alles probiert.
 
Hi,

eine Referenz auf das zu löschende Widget übergibst du ja dem Parameter _this. Über diesen sollte auch der Zugriff auf die ID möglich sein.
Code:
$(_this).attr('id')

Ciao
Quaese
 
hi,

danke schonmal für die ganzen schnellen Antworten, echt super!


Habe jetzt folgendes gemacht:
Code:
$.ajax({
							type:	'post',
							url:	'testing.php?todo=remove',

							data: {
								widget: 	$(_this).attr('id'),
								todo: 		'remove',
							},
						
					
						});

und habe bei "widget: " halt das als parameter genannt, aber deaktiviert die nicht.
 
Hi,

du hast einen Fehler bei der Reihenfolge, in der du die Scripts einbindest. Um Effekte verwenden zu können, muss zunächst die "Basis-jQuery-Datei" eingebunden werden.
  1. jquery.js
  2. effects.type.js
Ciao
Quaese
 
Habe die Reihenfolge geändert, jedoch hat sich nichts geändert.

##EDIT##

Hach wie dumm war ich wieder.


Wenn ich die ID des Div's übergebe, und der Div "widget_xy" heißt, dann kann er natürlich nicht nach der übergeben ID löschen.

Habe jetzt einfach immer mit str_replace das 'widget_' Stück weggeschnitten.

Bähm, läuft!


Danke dir vielmals Quaese!
 
Ich hätt noch eine Frage,

hab jetzt diese Funktionen in jeweils eine Datei ausgelagert und so eingebunden:
Code:
<script type="text/javascript" src="<?php echo JS_DIR; ?>/sortwidget.js"></script>
<script type="text/javascript" src="<?php echo JS_DIR; ?>/removewidget.js"></script>

Und jetzt wars das mit dem ausblenden und löschen.

Muss ich jetz in der Datei noch was ändern, dass der richtig drauf zu greift?

##EDIT##

Löschen geht doch, sehe ich grade! nur verschieben geht nicht mehr, man kann die Widget-Divs nicht mal mehr anfassen und ziehen.
 
Zurück