Avatar billede x4all_dk Nybegynder
24. november 2005 - 18:23 Der er 17 kommentarer og
1 løsning

Sende Javascript array videre fra form til PHP

Jeg har et array i javascript som jeg skal have sendt videre til en anden PHP side. Men jeg har ikke kunne få det til at virke...

Hvem kan vise mig hvordan jeg får sendt et javascript array videre til en anden PHP side ?

Jeg anvender PHP 4.


Følgende har jeg forsøgt at bruge uden held, som ellers lige er hvad jeg mangler!

http://www.hscripts.com/tutorials/php/jsArrayToPHP.php
Avatar billede showsource Seniormester
24. november 2005 - 18:41 #1
JS er klientside, PHP server
Men er det en formular som der "gøres noget ved" med javascript, så lav et hidden felt, som får den value som javascript laver, og brug det så ved submit i PHP
Avatar billede x4all_dk Nybegynder
24. november 2005 - 18:43 #2
Enig... jeg kan bare ikke få det til at virke!

Er der nogen som kan hjælpe ?
Avatar billede showsource Seniormester
24. november 2005 - 18:52 #3
Noget kode til det JS vil nok hjælpe!
Og spørg du hellere i javascript kategorien! :O)

Men en hurtig:
<input type="hidden" name="my_array" value="">
<input type="radio" name="test" value="var" onmouseup="this.form.my_array.value='noget tekst'">
Avatar billede egeriis Nybegynder
24. november 2005 - 19:58 #4
Når du skal have dit array fra JavaScript over i PHP, skal brugeren så igennem en formular først? For så har jeg da en løsning.
Avatar billede fixxxer Nybegynder
25. november 2005 - 14:37 #5
For at få PHP til at se post'ed data som et array, kan du definere en serie hidden felter sådan:

<input type="hidden" name="my_array[]" value="tekst">
<input type="hidden" name="my_array[]" value="4389237849">
<input type="hidden" name="my_array[]" value="dfklsdfsd">

Hvilket vil give

Array ( 0=>tekst, 1=>4389237849, 2=>dfklsdfsd )

på server-side PHP.
Avatar billede fixxxer Nybegynder
25. november 2005 - 14:38 #6
det er altså hvis du bruger

print_r($_POST['my_array']);
Avatar billede x4all_dk Nybegynder
27. november 2005 - 13:59 #7
Egeriis: Jeps, javascript arrayet "hentes" fra en form!
Avatar billede x4all_dk Nybegynder
27. november 2005 - 14:00 #8
Er der ikke en som har noget konkret kode som virker,
så jeg kan se et eksempel på det ?
Avatar billede showsource Seniormester
27. november 2005 - 15:06 #9
Så'n måske?

<html><head>
<script type="text/javascript">
var my_array = new Array();
my_array[0] = "Hvad?";
my_array[1] = "Hvad sker her?";
my_array[2] = "Noget javascript";


</script>
</head>
<body>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="hide" value="">
<input type="submit" value="Test" onclick="this.form.hide.value=my_array.toString();">
<p>
</form>

<?php

if(isset($_POST["hide"])) {

$all = explode(",", $_POST["hide"]);

    for($i = 0; $i < count($all); $i++)
    {
    echo $all[$i] ."<br />\r\n";
    }

}
?>
</body></html>
Avatar billede x4all_dk Nybegynder
27. november 2005 - 17:15 #10
--> showsource: Takker! Jeg fandt min fejl :)

Jeg brugte dette til at parse arrayet til PHPs hidden variable:
  "var hide = MyArray.toString();"

Men det skulle åbenbart hedder:
  "document.form.hide.value = MyArray.toString();"


Jeg takker for din hjælp som førte mig til min fejl (og rettelse)

Smid svar showsource hvis du vil have point!
Avatar billede showsource Seniormester
27. november 2005 - 17:32 #11
ok
Avatar billede fixxxer Nybegynder
27. november 2005 - 18:13 #12
Så vil jeg også komme med en konkret stump kode:


<html><head>
</head>
<body>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="hide[]" value="Hvad?">
<input type="hidden" name="hide[]" value="Hvad sker her?">
<input type="hidden" name="hide[]" value="Noget ikke-javascript">
<input type="submit" value="Send et array!">
<p>
</form>

<?

  if (isset($_POST['hide']))
  {
    print_r($_POST['hide']);
  }

?>
</body></html>
Avatar billede fixxxer Nybegynder
27. november 2005 - 18:32 #14
Jeg beklage at jeg har været langsom til at forstå hvad den helt præcise opgave var.. Men jeg tror at jeg er kommet frem til det x4all_dk er ude efter, på ovenstående links.
Avatar billede egeriis Nybegynder
27. november 2005 - 18:32 #15
Du kan jo lave din form således:

<form>
<script type="text/javascript">
for (i=0; i<MyArray.length; i++) {
  document.write('<input type="hidden" name="MyArray[]" value="'+MyArray[i]+'">');
}
</script>
--evt andre felter her--
</form>

Nu har fixxxer selvf. også lagt et forslag, men ville da lige give min løsning med :)
Avatar billede fixxxer Nybegynder
27. november 2005 - 18:40 #16
egeriis >> konceptet er det samme, jeg bruger bare DOM metoden hvilket jo burde være at foretrække.
Avatar billede egeriis Nybegynder
27. november 2005 - 18:40 #17
Jep, det er jo det :) Jeg ville også personligt vælge din løsning :)
Avatar billede x4all_dk Nybegynder
30. november 2005 - 09:59 #18
Showsource var hurtigst så han får alle point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester