ugrás a tartalomhoz

Javascript / facebook stream publish probléma

blind_fish · 2011. Nov. 3. (Cs), 10.02
Sziasztok.

Segitséget szeretnék kérni 1 olzan form létrehozásában amit csak akkor lehet elküldeni ha a felhasználó megosztotta előtte annak részleteit a facebookon.

1-nem tudom a form mezőinek adatait beletenni a megosztási változókba.
2-ez a kód a küldésre kattintva 1 másodpercre jeleniti meg a megosztó felületet és rögtön továbbadja a formot az action.php-nek.

<script type="text/javascript">
function publish(){

	var url = 'http://mysite'; // <- ezekbe kell betennem a formbol kivett adatokat
	var media = [];
	var imgSrc = 'http://static.howstuffworks.com/gif/cannes-crowds.jpg';

	media.push({'type':'image', 'src':imgSrc, 'href':url});

	var name = "I am Super Popular";

	var description = 'I have <?=count($friends["data"])?> friends.';

	var actionLinks = [{ 'text': 'Popularity', 'href': '<?=FACEBOOK_URL?>' }];

	var attach= {'name':name, 'description':description,'href':url, 'media':media,'properties':''};
	FB.ui({
	   'method': 'stream.publish',
	   'attachment': attach,
	'action_links': actionLinks },
    function(response) {

// ide kellene betennem valahogy azt ha elkuldte akkor mehet a form is
	  }
	);
}
</script>

<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript" charset="utf-8"></script>
<div id="fb-root"></div>
<script type="text/javascript" charset="utf-8">
FB.init({
    appId: '212727375405313',
    status: true,
    cookie: true,
    xfbml: true
});

	$(window).load(function() {
		FB.Canvas.setSize();
	});
</script>

<form onsubmit='publish()' name="upload_form" enctype="multipart/form-data" method="post" action="./modules/ads/action.php" />
 
1

DOM API

Poetro · 2011. Nov. 3. (Cs), 13.11
Mivel az űrlap nem tartalmaz elemeket, ezért nehéz a kérdésed első felére válaszolni. Talán legjobb, ha kicsit utánanézel a böngésző DOM API-jának, azon belül is a document.getElementById és az element.getElementsByTagname függvényeknek. Ahhoz, hogy a űrlapot ne küldje el, azt meg kell akadályozni, például azzal, hogy az onsubmit függvényből false értéket adsz vissza. Viszont ebben az esetben semmilyen módon nem tudnád elküldeni az űrlapot. Ezért érdemes az onsubmit függvényben még egy ellenőrzést tenni, és a Facebook API callbackben egy változót megváltoztatni, hogy tudd, hogy mostmár elmehet a űrlap is. Ezután a callbackben meghívod az űrlap submit függvényét.
2

thx.

blind_fish · 2011. Nov. 3. (Cs), 16.24
Kössz a hozzászólást.
Jó ötletnek tartom a még egy ellenőrzést, de a problémám forrása főleg abbol fakad hogy a javascript tudásom gyakorlatilag egyenlő a nullával.
A másik baj pedig hogy ha az ürlapban a feltöltendő képet csak az action dolgozza fel, akkor semmiféleképp nem birom használni a stream.publish-ban.

Ki kell találnom egy submit utáni megoldást. De köszi mégegyszer.
3

Tanulni

Poetro · 2011. Nov. 3. (Cs), 17.41
Akkor ajánlom a JavaScript nyelv elsajátítását, mert szerintem egy szép nyelv, még ha vannak hibái is (mint minden programozási nyelvnek). Rengeteg könyv van, ingyenesen elérhető is, amivel meg lehet tanulni a nyelvet. Az alapoktól induló Eloquent JavaScript az egyik talán legjobb ilyen könyv, és az alapoktól indul, kellemes sebességgel bemutatva a nyelvet.