Min eviga fråga och jag kan inte begripa varför jag inte får detta att fungera, sen plötsligt funkar det och då vet jag aldrig vad jag gjorde. Snälla hjälp mig, varför funkar inte detta:
Jag har lagt ett antal knappar med class: .button i en <tabell> med class toolbar. När jag lägger till en alert(str) så finns all data i javascriptet. Sen kommer det eviga strulet $_POST[].
Och jag får hela tiden felmeddelande: ”Notice: Undefined index: onclick in C:\wamp\www\builder\index.php”
Av någon anledning kommer datat inte fram till PHP-skriptet.
Det som skickas tillbaka är inte giltigt JSON-formaterat. Då vägrar jQuery att success eftersom det har skett ett fel.
Jag vet inte varför nummer 1 skulle hända i ditt fall. Däremot kanske det är så att str aldrig sätts, så att det sker ett fel innan requesten alls skickas.
Nummer 2 kan ju ske, särskilt om du får ett PHP-fel. Jag rekommenderar att du även skapar en felhanterare, så du ser vad jQuery håller på med.
Vart ska jag lägga error: function? Har provat både fritt och som en sucsess function utan att det ger någon alert.
Har även provat (se nedan) i php-delen!
if (isset($_POST ['onclick']))
echo $_POST ['onclick'];
else
echo 'Bullskit' ;
Det blev Bullskit av allt!
Jag begriper ingenting, finns det inställningar i wamp eller något annat hinder? Jag har programmerat detta tidigare och det funkar tillslut, men aldrig från början!
Det ska va kul att programmera!
Men se till att alltid ha developer tools öppet. Ctrl+skift+I eller F12 i Chrome, eller ctrl+skift+J för att komma till JS-konsolen. Byt ut ctrl mot cmd på Mac. F12 eller B i Firefox. Där måste du installera Firebug separat. Gå till tabben console, så ser du alltid eventuella JS-fel när sidan laddas. En annan bra tabb är network, där du kan se lla individuella http-anrop, inklusive innehållet i request och response genom att klicka på ett specifikt anrop.
Like the reference JSON encoder, json_encode() will generate JSON that is a simple value (that is, neither an object nor an array) if given a string, integer, float or boolean as an input value. While most decoders will accept these values as valid JSON, some may not, as the specification is ambiguous on this point.
Nate: Fnuttarna gör ingen skillnad i detta fall. Om attributets namn innehåller tecken som inte får finnas i variabelnamn i JS så måste du använda fnuttar, men i övrigt är det valfritt och gör ingen skillnad utöver att du slösar två tecken.
Och vad gäller json_encode, du läser texten fel. json_encode("test") returnerar "test" dvs en sträng med fnuttar runt. Om du inte anropar json_decode så får du bara test utan fnuttar om du inte placerar fnuttar där själv. Vad texten handlar om är ett en ensam sträng i strikt mening inte är giltig JSON eftersom du "egentligen" behöver definiera ett moderobjekt, t ex {property:"value"}
jQuery klarar av att tolka denna ensamma sträng om JSON, men däremot måste du använda alert(data); istället för alert(data.set); eller något annat. data motsvarar normalt rot-objektet, dvs de yttersta { och } i mitt exempel i förra stycket, så då skulle du kunna göra alert(data.property). Men i detta fall är alltså data direkt en sträng.
Bakgrund: JSON består av data kodat i samma format som JS-kod. Dvs, {} blir till ett object medan "" blir till en sträng.
Teckenkodningen för HTML-dokumentet var inte deklarerad. Dokumentet kommer att visas med förvrängd text i vissa webbläsarkonfigurationer om dokumentet tecken som ligger utanför US-ASCII-området. Teckenkodningen för filen måste deklareras i transportprotokollet eller så måste filen använda en byte order mark som kodningssignatur.