kostenloser Webspace werbefrei: lima-city


Ajajx übertragungs frage

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Also ich bin immer noch an der gleichen stelle wie vor 2 wochen und komme einfach nicht weiter ich habe folgeden code

    <script type="text/javascript">
    function savelayout(){
    var positions = "";
    var yindex = 0;
    var uid ="<?php echo $uid?>";
    alert(uid),
    $(".portlet").each(function(){yindex++;positions+=(this.id + "=" + this.parentNode.id + "|" + yindex + "&");});
    $.ajax({
    type: "POST",
    url: "savelayout.php",
    data: positions,
    });
    data2:uid;
    $.post("savelayout.php", { uid:uid,},
      function(data2){
        alert("Data Loaded: " + data2);
      });
    
    
    }
    </script>


    dieser wird auf savelayout.php folgedner maßen empfangen
    $varqty=count($_POST); // It counts how many info portlets are we passing
        $varnames=array_keys($_POST); // Obtains variable names
        $varvalues=array_values($_POST);// Obtains variable values;
    	$uid=$_POST['uid'];

    Jetzt empfang ich zwar auf savelayout.php die uid aber iwie nicht richtig nachdem ich mich ein bisschen mit ajax bzw deren übertragung und js beschäftigt habe bin ich dazu gekommen das der Fehler eventl im ajax/js liegt und zwar glaube ich das die beiden variablen positions und uid nacheinader übergeben werden und ds es deshalb nicht möglich ist in der savelayout beide gleichzeitig zu empfangen ich habe absolut keine ahnung woran es dann liegen könnte ich werde jetzt diesen letze hoffnunf nochmals in euch setzen und hoffe das es eine lösung gibt wenn nicht muss ich leider kruz vorm Ziel aufgeben
    Danke im vorraus

    Beitrag zuletzt geändert: 30.9.2009 16:37:10 von goldschau
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. nicht richtig heißt: was bekommst du?
  4. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Ich bekome schon die richtige Zahl was ich mit nicht richtig sagen will heißt das sie nicht weiter verarbeidet wird wenn ich aber die uid aber auf savelayout festlege druch:
    $uid=4;
    dann geht die verarbietung deswegen habe ich auch den verdacht das die variablen nicht zeitgleich ankommen bzw nicht im gleichen zyklus.
    Ich habe den folgeden code mal geädert in:
    $.ajax({
    type: "POST",
    url: "savelayout.php",
    data: positions,
    });

    Allerdings bekomme ich jetzt bie dem hier:
    var uid ="<?php echo $uid?>";
    alert(uid),

    bei dem alert das heraus:<?php echo $uid?>
  5. goldschau schrieb:
    Also ich bin immer noch an der gleichen stelle wie vor 2 wochen und komme einfach nicht weiter ich habe folgeden code
    [...]


    hat deine seite mit dem javascript die endung ".php" oder ".html" ?
    Gib doch mal auf der savelayout.php folgenden code am ende ein & sag uns das ergebniss:

    print_r ($varqty);
    echo"<br>";
    print_r ($varnames);
    echo"<br>";
    print_r ($varvalues);
    echo"<br>";
    print_r ($_POST);


    Mir persöhnlich ist Dein Code einfach noch zu unverständlich, vielleicht zeigst Du ihn mal komplett.

    Vielleicht kann man Dir dann besser helfen...
  6. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Die datei mit der javascript hat php am ende
    Dercode:
    <script type="text/javascript">
    function savelayout(){
    var positions = "";
    var yindex = 0;
    var uid ="<?php echo $uid?>";
    alert(uid),
    $(".portlet").each(function(){yindex++;positions+=(this.id + "=" + this.parentNode.id + "|" + yindex + "&");});
    $.ajax({
    type: "POST",
    url: "savelayout.php",
    data: positions,
    });
    data2:uid;
    $.post("savelayout.php", { uid:uid,},
      function(data2){
        alert("Data Loaded: " + data2);
      });

    Der andere code der auch jquery aufruft
    <script type="text/javascript">
    	$(function() {
    		$(".column").sortable({
    			connectWith: '.column',
    			update:savelayout,
    		});
    
    		$(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all")
    			.find(".portlet-header")
    				.addClass("ui-widget-header ui-corner-all")
    				.prepend('<span class="ui-icon ui-icon-plusthick"></span>')
    				.end()
    			.find(".portlet-content");
    
    		$(".portlet-header .ui-icon").click(function() {
    			$(this).toggleClass("ui-icon-minusthick");
    			$(this).parents(".portlet:first").find(".portlet-content").toggle();
    		});
    
    		$(".column").disableSelection();
    	});
    	</script>

    Und hier nochma die savelayout.php komplett:
    <?php
    	$verbindung = mysql_connect("", "" , "")
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db("deine_startseite") or die ("Datenbank konnte nicht ausgewählt werden");
    	$varqty=count($_POST); // It counts how many info portlets are we passing
        $varnames=array_keys($_POST); // Obtains variable names
        $varvalues=array_values($_POST);// Obtains variable values;
    	$uid=$_POST['uid'];
    	$uid=(int)$uid;
    	echo"id=$uid";
    	if ($uid. "=".$_POST['uid'])
    	{echo"ok|";}	
    	for($i=0;$i<$varqty;$i++){  // For each variable
    	$semivalue = explode("|", $varvalues[$i]);  // We break it when  ‘|’ is found and saves it in $semivalur
    	$test="`userid`='$uid'";
    	$test2="`header`='".$varnames[$i]."'";	
        $up=mysql_query("UPDATE layouts SET `column`='$semivalue[0]' WHERE $test AND $test2"); // Saves each portlet column belongness
        $up2=mysql_query("UPDATE layouts SET `yindex`='$semivalue[1]' WHERE $test AND $test2"); // Saves each portlet ‘yindex’
    	
    	print_r ($varqty);
    	echo"<br>";
    	print_r ($varnames);
    	echo"<br>";
    	print_r ($varvalues);
    	echo"<br>";
    	print_r ($_POST);
        }
        ?>

    Folgeden Ausgabe bekomm ich mit den code von dir:
    <br>Array
    (
    [0] => uid
    )
    <br>Array
    (
    [0] => 4
    )
    <br>Array
    (
    [uid] => 4
    )

    Das ist die ausgabe die ich über diesen code bekomme:
    alert("Data Loaded: " + data2);

    Ich glaube die ergebnisse von diesme code:
    $.ajax({
    type: "POST",
    url: "savelayout.php",
    data: positions,
    });

    werden dabei nicht ausgegben

    Der code stammt aus einen tutorial was es jetzt leider nicht mehr gibt es dient dazu die positionen der portlets/drgable boxes aus dem jquery portlet system sich zu merken also ein eine Datenbank zu hinterlegen. als basiert das system auf jquery

    EDIT Ich habe mal folgendes gemacht:
    data2:uid;
    $.post("savelayout.php", { uid:uid,positions:positions},
      function(data2){
        alert("Data Loaded: " + data2);
      })
    ;
    Und dabei das rausbekommen:
    (
    [0] => uid
    [1] => positions
    )
    <br>Array
    (
    [0] => 4
    [1] => name1=leftc|1&name3=midc|2&name2=rightc|3&
    )
    <br>Array
    (
    [uid] => 4
    [positions] => name1=leftc|1&name3=midc|2&name2=rightc|3&
    )
    2<br>Array
    (
    [0] => uid
    [1] => positions
    )
    <br>Array
    (
    [0] => 4
    [1] => name1=leftc|1&name3=midc|2&name2=rightc|3&
    )
    <br>Array
    (
    [uid] => 4
    [positions] => name1=leftc|1&name3=midc|2&name2=rightc|3&
    )



    Beitrag zuletzt geändert: 30.9.2009 18:33:07 von goldschau
  7. goldschau schrieb:
    [..]
    EDIT Ich habe mal folgendes gemacht:
    data2:uid;
    $.post("savelayout.php", { uid:uid,positions:positions},
      function(data2){
        alert("Data Loaded: " + data2);
      })
    ;
    Und dabei das rausbekommen:
    (
    [0] => uid
    [1] => positions
    )
    <br>Array
    (
    [0] => 4
    [1] => name1=leftc|1&name3=midc|2&name2=rightc|3&
    )
    <br>Array
    (
    [uid] => 4
    [positions] => name1=leftc|1&name3=midc|2&name2=rightc|3&
    )
    2<br>Array
    (
    [0] => uid
    [1] => positions
    )
    <br>Array
    (
    [0] => 4
    [1] => name1=leftc|1&name3=midc|2&name2=rightc|3&
    )
    <br>Array
    (
    [uid] => 4
    [positions] => name1=leftc|1&name3=midc|2&name2=rightc|3&
    )


    äh, ja gut dann werden ja alle daten korrekt übertragen, problem gelöst oder?
  8. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Ja genau das dachte ich auch aber iwie bekomm ich mit dem code (nochmal eingefügt) kein Datenbnak eintrag.
    <?php
    	$verbindung = mysql_connect("", "" , "")
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db("deine_startseite") or die ("Datenbank konnte nicht ausgewählt werden");
    	$varqty=count($_POST); // It counts how many info portlets are we passing
        $varnames=array_keys($_POST); // Obtains variable names
        $varvalues=array_values($_POST);// Obtains variable values;
    	$uid=$_POST[uid];
    	$uid=(int)$uid;
    	echo"id=$uid";
    	if ($uid. "=".$_POST[uid])
    	{echo"ok|";}	
    	for($i=0;$i<$varqty;$i++){  // For each variable
    	$semivalue = explode("|", $varvalues[$i]);  // We break it when  ‘|’ is found and saves it in $semivalur
    	$test="`userid`='".$uid."'";
    	$test2="`header`='".$varnames[$i]."'";	
        $up=mysql_query("UPDATE layouts SET `column`='$semivalue[0]' WHERE $test AND $test2"); // Saves each portlet column belongness
        $up2=mysql_query("UPDATE layouts SET `yindex`='$semivalue[1]' WHERE $test AND $test2"); // Saves each portlet ‘yindex’
    	print_r ($varqty);
    	echo"<br>";
    	print_r ($varnames);
    	echo"<br>";
    	print_r ($varvalues);
    	echo"<br>";
    	print_r ($_POST);
    	}
    
    
        ?>

    aber wenn ich $uid=4 z.B. eintrage bekomme ich eine eintrag in die db


    Beitrag zuletzt geändert: 30.9.2009 19:26:44 von goldschau
  9. goldschau schrieb: [...]
    aber wenn ich $uid=4 z.B. eintrage bekomme ich eine eintrag in die db


    nun, damit ist das problem schon einmal eingekreist:
    <?php
    $varqty = 4; // It counts how many info portlets are we passing
        $varnames=array("uid","positions"); // Obtains variable names
        $varvalues=array(4,"name1=leftc|1&name3=midc|2&name2=rightc|3&");// Obtains variable values;
    	$uid=4;
    	$uid=(int)$uid;
    	//echo"id=$uid";
    
    	for($i=0;$i<$varqty;$i++){  // For each variable
    	$semivalue = explode("|", $varvalues[$i]);  // We break it when  ‘|’ is found and saves it in $semivalur
    	$test="`userid`='".$uid."'";
    	$test2="`header`='".$varnames[$i]."'";
       echo "UPDATE layouts SET `column`='$semivalue[0]' WHERE $test AND $test2"; // Saves each portlet column belongness
    echo "<br>";    
    echo "UPDATE layouts SET `yindex`='$semivalue[1]' WHERE $test AND $test2"; // Saves each portlet ‘yindex’
    echo "<br>";
    	}
    
    
        ?>


    AUSGABE:
    UPDATE layouts SET `column`='4' WHERE `userid`='4' AND `header`='uid'
    UPDATE layouts SET `yindex`='' WHERE `userid`='4' AND `header`='uid'
    UPDATE layouts SET `column`='name1=leftc' WHERE `userid`='4' AND `header`='positions'
    UPDATE layouts SET `yindex`='1&name3=midc' WHERE `userid`='4' AND `header`='positions'
    UPDATE layouts SET `column`='' WHERE `userid`='4' AND `header`=''
    UPDATE layouts SET `yindex`='' WHERE `userid`='4' AND `header`=''
    UPDATE layouts SET `column`='' WHERE `userid`='4' AND `header`=''
    UPDATE layouts SET `yindex`='' WHERE `userid`='4' AND `header`=''


    edit: Ich hoffe ich habe die arrays richtig gesetzt

    Beitrag zuletzt geändert: 30.9.2009 20:42:10 von simuliertes
  10. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Ich habe dne code mal so geamacht wie du es geschrieben hast bekomme folgende ausgabe:

    UPDATE layouts SET `column`='4' WHERE `userid`='4' AND `header`='uid'
    UPDATE layouts SET `yindex`='' WHERE `userid`='4' AND `header`='uid'
    UPDATE layouts SET `column`='name1=leftc' WHERE `userid`='4' AND `header`='positions'
    UPDATE layouts SET `yindex`='1&name3=midc' WHERE `userid`='4' AND `header`='positions'
    UPDATE layouts SET `column`='' WHERE `userid`='4' AND `header`=''
    UPDATE layouts SET `yindex`='' WHERE `userid`='4' AND `header`=''
    UPDATE layouts SET `column`='' WHERE `userid`='4' AND `header`=''
    UPDATE layouts SET `yindex`='' WHERE `userid`='4' AND `header`=''

    Aber keine Datenbank eintrag

    hier mal die sql von der DB:
    CREATE TABLE IF NOT EXISTS `layouts` (
      `id` int(9) NOT NULL AUTO_INCREMENT,
      `userid` int(9) NOT NULL,
      `column` enum('leftc','midc','rightc') CHARACTER SET latin1 COLLATE latin1_german2_ci NOT NULL,
      `yindex` int(9) NOT NULL,
      `header` enum('name1','name2','name3') NOT NULL,
      `content` varchar(120) CHARACTER SET latin1 COLLATE latin1_german2_ci NOT NULL,
      PRIMARY KEY (`id`)
    )


    So wie ich das jetzt sehe macht der doch keine datenbnak eintrag weil header auf name1, name2, name3 gesetzt werden kann aber hier in dem code mit positions verglichen wird oder sehe ich das jetzt falsch ??
  11. goldschau schrieb:
    [..]
    So wie ich das jetzt sehe macht der doch keine datenbnak eintrag weil header auf name1, name2, name3 gesetzt werden kann aber hier in dem code mit positions verglichen wird oder sehe ich das jetzt falsch ??


    Also ersteinmal habe ich noch schwierigkeiten aus Deinem Code herauszulesen was Du eigentlich erreichen willst.
    Kann also gut sein das ich mich hier total auf dem Holzweg befinde, weil ich dein ziel nicht verstanden habe.
    Nach dem was hier ausgegeben wird, würde ich sagen dürfte eigentlich NICHTS gespeichert werden.
    Weil "header" nie "uid" oder "positions" sein kann .
    hast Du überprüft ob ich die arrays richtig gemacht habe? also so wie die Daten normalerweise auch ankommen würden?.
    Egal, ich spekuliere einfach mal:
    -Du hast einen user mit der userid =4
    -dieser User kann im header name1,name2 und name3 einstellungen vornehmen
    -und zwar kann er bestimmen ob name1,name2 oder name3 eines der 3 optionen leftc,midc oder rightc erhalten soll.
    richtig?
  12. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Das ganze System ist von jquery porlet also man kann boxen verschieben im moment 3( name 1 name 2 name 3) und zwar in eine recht mittlere und linke spalte (leftc, rightc,midc) bei einer änderung wird die savelayout aufgerufen welche welche in eine datenbnak eintragen soll welche spalte wo ist beim aufruf der seite wird das aus der datenbank wieder ausgelesen damit die gleiche anordnung wieder ist.ich wiess das das alles mit cookies zu beältigen ist aber ich wollte es eigl in eine db schreiben.

    Ich habe es mal so wie es bis jetzt ist auf meinen lima webspace hochgeladen:
    http://goldschau.de/deine_startseite/jquery/portlets2.php

    Hier nochma das system in seiner urform:
    http://jqueryui.com/demos/sortable/#portlets

    Hier mal der code wo die portlets angezeigt werden und zur savelayout conectet wird:
    <!doctype html>
    <html lang="en">
    <head>
    	<title>jQuery UI Sortable - Portlets</title>
    	<link type="text/css" href="./themes/base/ui.all.css" rel="stylesheet" />
    	<script type="text/javascript" src="./jquery-1.3.2.js"></script>
    	<script type="text/javascript" src="./ui.core.js"></script>
    	<script type="text/javascript" src="./ui.sortable.js"></script>
    	<link type="text/css" href="./demos.css" rel="stylesheet" />
    	<style type="text/css">
    	.column { width: 170px; float: left; padding-bottom: 100px; }
    	.portlet { margin: 0 1em 1em 0; }
    	.portlet-header { margin: 0.3em; padding-bottom: 4px; padding-left: 0.2em}
    	.portlet-header .ui-icon { float: right; }
    	.portlet-content { padding: 0.4em; }
    	.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
    	.ui-sortable-placeholder * { visibility: hidden; }
    	</style>
    	<script type="text/javascript">
    	$(function() {
    		$(".column").sortable({
    			connectWith: '.column',
    			update:savelayout,
    		});
    
    		$(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all")
    			.find(".portlet-header")
    				.addClass("ui-widget-header ui-corner-all")
    				.prepend('<span class="ui-icon ui-icon-plusthick"></span>')
    				.end()
    			.find(".portlet-content");
    
    		$(".portlet-header .ui-icon").click(function() {
    			$(this).toggleClass("ui-icon-minusthick");
    			$(this).parents(".portlet:first").find(".portlet-content").toggle();
    		});
    
    		$(".column").disableSelection();
    	});
    	</script>
    </head>
    <body>
    
        <div class="column" style="width:90%" id="leftc">
        <?php
    	$uid=4;
    	$uid = (int)$uid;
    	$verbindung = mysql_connect("", "" , "")
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db("deine_startseite") or die ("Datenbank konnte nicht ausgewählt werden");
    	?>
        <div class="column" style="width:30%" id="leftc">
        <?
        $sql = ("SELECT * FROM layouts WHERE `userid` = '$uid' AND `column` = \"leftc\" ORDER BY yindex ASC");
        $lql = mysql_query($sql) or die(mysql_error());
        while($lpl = mysql_fetch_assoc($lql)){
        ?>
        <div class="portlet" id="<? print utf8_encode($lpl['header']); ?>">
        <div class="portlet-header"><? print utf8_encode($lpl['header']); ?></div>
        <div class="portlet-content"><? include(utf8_encode($lpl['content'])); ?></div>
        </div>
        <? } ?>
        </div>
    
        <div class="column" style="width:30%" id="midc">
        <?
        $sql = ("SELECT * FROM layouts WHERE `userid` = '$uid' AND `column` = \"midc\" ORDER BY yindex ASC");
        $lql = mysql_query($sql) or die(mysql_error());
        while($lpl = mysql_fetch_assoc($lql)){
        ?>
        <div class="portlet" id="<? print utf8_encode($lpl['header']); ?>">
        <div class="portlet-header"><? print utf8_encode($lpl['header']); ?></div>
        <div class="portlet-content"><? include(utf8_encode($lpl['content'])); ?></div>
        </div>
        <? } ?>
        </div>
    
        <div class="column" style="width:30%" id="rightc">
        <?
        $sql = ("SELECT * FROM layouts WHERE `userid` = '$uid' AND `column` = \"rightc\" ORDER BY yindex ASC");
        $lql = mysql_query($sql) or die(mysql_error());
        while($lpl = mysql_fetch_assoc($lql)){
        ?>
        <div class="portlet" id="<? print utf8_encode($lpl['header']); ?>">
        <div class="portlet-header"><? print utf8_encode($lpl['header']); ?></div>
        <div class="portlet-content"><? include(utf8_encode($lpl['content'])); ?></div>
        </div>
        <? } ?>
        </div>
    		<?php
    		$verbindung = mysql_connect("", "" , "")
    		or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    			
    		mysql_select_db("deine_startseite") or die ("Datenbank konnte nicht ausgewählt werden");
    
    $useridhasportlets=mysql_query("SELECT * FROM layouts WHERE `userid` = '$uid'"); 
    if(mysql_num_rows($useridhasportlets)==0)
    {
    $eintrag1="INSERT INTO layouts (`userid`,`column`,`yindex`,`header`,`content`) VALUES('$uid','leftc','1','name1','url1.php')" or die(mysql_error()); 
    $eintragen1=mysql_query($eintrag1);
    $eintrag2="INSERT INTO layouts (`userid`,`column`,`yindex`,`header`,`content`) VALUES('$uid','midc','2','Name2','url2.php')" or die(mysql_error()); 
    $eintragen2=mysql_query($eintrag2);
    $eintrag3="INSERT INTO layouts (`userid`,`column`,`yindex`,`header`,`content`) VALUES('$uid','rightc','3','Name3','url3.php')" or die(mysql_error()); 
    $eintragen3=mysql_query($eintrag3);
    }
    
    ?> 
    
    <script type="text/javascript">
    function savelayout(){
    var positions = "";
    var yindex = 0;
    var uid ="<?php echo $uid?>";
    alert(uid),
    $(".portlet").each(function(){yindex++;positions+=(this.id + "=" + this.parentNode.id + "|" + yindex + "&");});
    $.ajax({
    type: "POST",
    url: "savelayout.php",
    data: positions,    
    });
    data2:uid,positions,
    $.post("savelayout.php", {positions:positions,uid:uid,},
      function(data2){
        alert("Data Loaded: " + data2);
      });
    
    
    }
    </script> 
      
    </body>
    </html>


    Ich hoffe du wiesst jetzt besser bescheid
  13. Hi,

    goldschau schrieb:
    Jetzt empfang ich zwar auf savelayout.php die uid aber iwie nicht richtig nachdem ich mich ein bisschen mit ajax bzw deren übertragung und js beschäftigt habe bin ich dazu gekommen das der Fehler eventl im ajax/js liegt und zwar glaube ich das die beiden variablen positions und uid nacheinader übergeben werden und ds es deshalb nicht möglich ist in der savelayout beide gleichzeitig zu empfangen ich habe absolut keine ahnung woran es dann liegen könnte ...

    ich vermute damit hast du zumindest ein Problem schon lokalisiert. Beim jedem Seitenaufruf wird die Variable POST neu gesetzt und somit hast du entweder positions oder uid zur Verfügung. Spricht etwas dagegen, die uid an den positions - String anzuhängen und dann eben nur einmal savelayout.php aufzurufen?
    Auf Serverseite mußt du den String halt dann wieder entsprechend zerlegen.

    Gruß
    Manni
  14. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Aber eigentlich wird doch die uid und die postion gleichzeitig über dne code hier übertragen oder? :
    data2:uid,positions,
    $.post("savelayout.php", {positions:positions,uid:uid,},
      function(data2){
        alert("Data Loaded: " + data2);
      });


    Und Siehe hier:
    simuliertes schrieb:
    goldschau schrieb:
    [..]
    EDIT Ich habe mal folgendes gemacht:
    data2:uid;
    $.post("savelayout.php", { uid:uid,positions:positions},
      function(data2){
        alert("Data Loaded: " + data2);
      })
    ;
    Und dabei das rausbekommen:
    (
    [0] =&gt; uid
    [1] =&gt; positions
    )
    &lt;br&gt;Array
    (
    [0] =&gt; 4
    [1] =&gt; name1=leftc|1&amp;name3=midc|2&amp;name2=rightc|3&amp;
    )
    &lt;br&gt;Array
    (
    [uid] =&gt; 4
    [positions] =&gt; name1=leftc|1&amp;name3=midc|2&amp;name2=rightc|3&amp;
    )
    2&lt;br&gt;Array
    (
    [0] =&gt; uid
    [1] =&gt; positions
    )
    &lt;br&gt;Array
    (
    [0] =&gt; 4
    [1] =&gt; name1=leftc|1&amp;name3=midc|2&amp;name2=rightc|3&amp;
    )
    &lt;br&gt;Array
    (
    [uid] =&gt; 4
    [positions] =&gt; name1=leftc|1&amp;name3=midc|2&amp;name2=rightc|3&amp;
    )


    äh, ja gut dann werden ja alle daten korrekt übertragen, problem gelöst oder?


    Oder sehe ich das jetzt falsch weil mir doch eigl damit ausgegeben wird das alles empfangen wurde??
    Es spricht eigl nix dagegen die uid mit ran zu hängen ich weiss aber nicht so recht wie.

  15. Hi,
    goldschau schrieb:
    Aber eigentlich wird doch die uid und die postion gleichzeitig über dne code hier übertragen oder? :
    .....
    Oder sehe ich das jetzt falsch weil mir doch eigl damit ausgegeben wird das alles empfangen wurde??
    Es spricht eigl nix dagegen die uid mit ran zu hängen ich weiss aber nicht so recht wie.

    Du siehst das richtig, ich habe den Thread wohl nicht aufmerksam genug gelesen und nicht geshen, dass dieses Problem schon gelöst ist. Vergiss das was ich mit dem String gesagt habe, so wie du es gemacht hast, mit zwei Feldern, ist es ohnehin sauberer.
    Du solltest dir mal genau überlegen was du nun an den Server in der Variablen $_POST übergibst. Du hast zwei Felder, die uid als Zahl und positions als String, das wars. Du mußt dann die Infos so aufbereiten, dass du sie in die DB eintragen kannst. Ich habe das mal gemacht und mich soweit es ging an deinem Code orientiert. So wie ich das verstanden habe, hast du in der Datenban für jede UID 3 Zeilen mit name1, name2 und name3. Ich bin mir aber nicht ganz sicher ob du das wirklich willst. Aber egal, hier mal dein Code mit meinen Kommentaren:
    <?php
    	$verbindung = mysql_connect("", "" , "")
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db("deine_startseite") or die ("Datenbank konnte nicht ausgewählt werden");
    	$varqty=count($_POST); // Du weißt bereits, dass du zwei Variablen nämlich uid und positions übergibst
        $varnames=array_keys($_POST); // Du weißt bereits, dass die zwei Variablen uid und positions heißen
        $varvalues=array_values($_POST);// Bringt eigentlich keinen Vorteil die Werte zu kopieren, stehen doch schon in $_Post
    	$uid=$_POST[uid];
    	$uid=(int)$uid;
    	echo"id=$uid";  //eigentlich sinnlos
    	if ($uid. "=".$_POST[uid])  //eigentlich sinnlos
    	{echo"ok|";}	
    	for($i=0;$i<$varqty;$i++){  // Du mußst nur einen String, nämlich positions exploden und die dann gewonnenen Werte in die Tabelle eintragen
    	$semivalue = explode("|", $varvalues[$i]);  // We break it when  ‘|’ is found and saves it in $semivalur
    	$test="`userid`='".$uid."'";
    	$test2="`header`='".$varnames[$i]."'";	
        $up=mysql_query("UPDATE layouts SET `column`='$semivalue[0]' WHERE $test AND $test2"); // Saves each portlet column belongness
        $up2=mysql_query("UPDATE layouts SET `yindex`='$semivalue[1]' WHERE $test AND $test2"); // Den yindex hast du ja einfach nur hochgezählt, brauchstdu also gar nicht auswerten
    	}
    ?>

    und hier der Code, so umgegaut wie ich es verstanden habe und soweit möglich getestet. Die echos habe ich zum Verständins drin gelassen:
    <?php
    	$verbindung = mysql_connect("", "" , "")
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db("deine_startseite") or die ("Datenbank konnte nicht ausgewählt werden");
    
    	$uid=$_POST[uid];
    	$uid=(int)$uid;
    	$semivalue = explode("|", $_POST['positions']);
      echo "<br>";
    	print_r($semivalue);
    	echo "<br>";
      echo count($semivalue);
      echo "<br>";
    	for($i=1;$i < count($semivalue);$i++){  // Du mußst nur einen String, nämlich positions exploden 
    	$test="`userid`='".$uid."'";
      $keyval= explode("=",$semivalue[$i-1]);
      print_r ($keyval);
      echo "<br>";
    	$test2="`header`='".substr($keyval[0],strlen($keyval[0])-5)."'";
      echo "UPDATE layouts SET `column`='$keyval[1]' WHERE $test AND $test2"; 
      echo "<br>";
      echo "UPDATE layouts SET `yindex`='$i' WHERE $test AND $test2"; 
      $up=mysql_query("UPDATE layouts SET `column`='$keyval[1]' WHERE $test AND $test2"); // Saves each portlet column belongness
      $up2=mysql_query("UPDATE layouts SET `yindex`='$i' WHERE $test AND $test2"); // Saves each portlet ?yindex?
    	}
    ?>


    Wie gesagt, evtl. solltest du deine DB Struktur noch mal überdenken.

    Gruß
    Manni
  16. Autor dieses Themas

    goldschau

    goldschau hat kostenlosen Webspace.

    Dein code hat funktioniert Danke für eure große hilfe hab jetzt nur noch ein design porblem aber hoffe das lässt sich lösen.
    Gorßes THX nochmal
  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!