webForumDet fria alternativet

hur hämtas värden från serialize (Jquery)

JavaScriptur Javascript

6 svar · 1 534 visningar · startad av evilaid

Medlem sedan apr. 2009433 inlägg
Frågan#1

Hej
Hittade en riktigt enkel drag drop funktion, trodde jag....

problemet är att den via ajax skickar ett anrop till en fil som uppdaterar en databas men jag förstår inte hur jag ska utvinna datan..

dom här få raderna fixar hela biten men hur gör jag i min asp fil för att få ut värden som skickas?

    $(document).ready(function () {

        $(function () {
            $("#contentLeft ul").sortable({ opacity: 0.6, cursor: 'move', update: function () {
                var order = $(this).sortable("serialize") + '&action=updateRecordsListings';
                $.post("updateDB.asp", order, function (theResponse) {
                    $("#contentRight").html(theResponse);
                });
            }
            });
        });

    });

Hela funktionen finns väkdigt bra beskriven här men ändå fattas jag inte hur jag ska göra, detta exemplet är i php och jag kan inte det för fem öre..
http://www.webresourcesdepot.com/dynamic-dragn-drop-with-jquery-and-php
Så igentligen är problemet att översätta php kod till asp eller förstå hur infon den skickas i ajax anropet...

Mvh

Medlem sedan juni 20019 519 inlägg
#2

Vad vill du skicka in i din ASP fil då? kör bara en replace på [] så att du få xxx_1,xxx_2 => xxx=1&xxx=2 för just nu får du xxx[]=1&xxx[]=2

eller bara köra en option i din serizale:

$(this).sortable("serialize",{

 key: 'bob'

})

så kommer det bli bob=1&bob=2

och en demo: http://jsbin.com/ohehom/edit

Och dokumentation http://jqueryui.com/demos/sortable/#method-serialize

Medlem sedan apr. 2009433 inlägg
#3

Där blev jag inte mycket klokare..
Html koden ser ut så här:

<div id="contentLeft">
			<ul>
            <li id='recordsArray_689'>689</li>
<li id='recordsArray_687'>687</li>
<li id='recordsArray_692'>692</li>
             </ul>
		</div>

Det jag ska få ut nu är id nummret..
Php koden som används för att hämta ut det är så här:

<?php 
require("db.php");

$action 				= mysql_real_escape_string($_POST['action']); 
$updateRecordsArray 	= $_POST['recordsArray'];

if ($action == "updateRecordsListings"){
	
	$listingCounter = 1;
	foreach ($updateRecordsArray as $recordIDValue) {
		
		$query = "UPDATE records SET recordListingID = " . $listingCounter . " WHERE recordID = " . $recordIDValue;
		mysql_query($query) or die('Error, insert query failed');
		$listingCounter = $listingCounter + 1;	
	}
	
	echo '<pre>';
	print_r($updateRecordsArray);
	echo '</pre>';
	echo 'If you refresh the page, you will see that records will stay just as you modified.';
}
?>

Jag använder firefox och firebug, är det något sätt att se hur strängen ser ut som skickas via ajax anropet?

är det en querystring som skickas då menar du? så jag hämtar det med request.querystring() ??

ÄR inte alls med nu ?

Medlem sedan juni 20019 519 inlägg
#4

Nej, eftersom du postar med POST i din ajax anrop så är det inte QueryString du skall kolla efter utan du postar ju Formulär data

Självklart kan du se vad som skickas i ett AJAX arop med firebug bara kolla i konsollen ju.

snabb omsrkivning av php koden typ:

<%
'DB koppling

action = request.Form("action")
data = request.Form("bob")

If action = "updateRecordsListings" Then
	listCounter = 1
	For each item in data
		query = "UPDATE records Set RecorListId = " & listCounter & " WHERE RecordId = " & item
		'spara
		listCounter= listCounter+1
	Next
	Response.Write("<pre>" & data &"</pre>If you refresh the page, you will see that records will stay just as you modified.")
End If
%>

inte något direkt svårt att förstå sig på PHP koden

Medlem sedan juni 201161 inlägg
#5

Vad jag förstår gör den en POST, så du borde ju hitta dem i Request.Form samlingen.

Om vi använder voigtann1:s förslag och lägger till { key: 'bob' } som option till serialize, så bör du ju alltså hitta listan i Request.Form("bob")

Sedan kan du ju plocka ut innehållet med något i stil med:

For i = 1 To Request.Form("bob").Count
    UpdateRecord Request.Form("bob")(i), i
Next

där då UpdateRecord tar ID:t och positionen och uppdaterar i databasen med det.

Medlem sedan apr. 2009433 inlägg
#6

Fy fan vad förbannad man kan bli!
Jag har insett att jag varken har tålamod eller nogranheten för att programmera..

Tog en hel dag att få detta att fungera, mycket beroende på massa slarv och missar. var itne långt ifrån att datorn åkte ut från balkongen..

Nu fungerar det ial men jag fick inte till det med Key metoden till serialize? Nåväll, körde istället med "recordsArray[]"

Kan bara tacka för tålamodet och många idiotiska frågor..

tack och bock!

Medlem sedan juni 20019 519 inlägg
#7

Hur kan du inte få key att fungera?

129 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)