Avatar billede cot Nybegynder
08. august 2008 - 20:52 Der er 23 kommentarer og
1 løsning

Sætte tal op i forskellig rækkefølge

Hej

Hvis jeg har tre tal:

$forkert1
$forkert2
$resultat

Disse vil jeg gerne have outputtet, så de bliver stillet op i forskellige rækkefølger hver gang (man skal svare på et regnestykke), sådan at det jo ikke altid er resultatet der står i midten f.eks.

Hvordan kan jeg gøre sådan, helst i php?

//cot
Avatar billede jakobdo Ekspert
08. august 2008 - 21:17 #1
$data = array('input1','input2','input3');
shuffle($data);
foreach($data AS $input){
echo $input . '<br />';
}
Avatar billede cot Nybegynder
08. august 2008 - 21:21 #2
kan man gøre det med javascrip, sorry men, det ville være rart lige at se de to forskellige ting, hvad der vil passe bedst ind i min løsning :)
Avatar billede jakobdo Ekspert
08. august 2008 - 21:40 #3
Avatar billede cot Nybegynder
08. august 2008 - 22:01 #4
Det virker ikk for mig, da det er javascript, der er inde i variablen :(
Avatar billede jakobdo Ekspert
08. august 2008 - 22:32 #5
Så brug php metoden.
Avatar billede cot Nybegynder
09. august 2008 - 08:04 #6
Men hvis jeg bare skriver det ind der ved input1,2,3 så kan den ikke finde ud af det, da javascriptet indeholder '' og så bliver det jo stoppet der :S
Avatar billede jakobdo Ekspert
09. august 2008 - 10:13 #7
Så smid " omkring "
Du kan jo lave:
$data = array('he\'s');
eller
$data = array("he's");
Avatar billede cot Nybegynder
09. august 2008 - 10:41 #8
Okay, det med he\s der forstod jeg ikke lige...

Det er det her kode jeg skal have som input:
<a href="#" onclick="java script: document.getElementById('textfield3').value = '<?php echo $resultat; ?>';"><img border="0" onclick="java script: this.border='2px'; java script: this.borderColor='#000000';"  ALT="<?php echo $resultat; ?>" /></a>

Hvordan kan jeg få det ind?
Avatar billede zynzz Praktikant
09. august 2008 - 10:47 #9
Du kan prøve (utestet):

function addslashesARRAY($value)
{
$value = is_array($value) ?
array_map('addslashesARRAY', $value) :
addslashes($value);
return $value;
}


$array = array('input1','input2','input3');
$data = addslashesARRAY($array);
shuffle($data);
foreach($data AS $input){
echo $input . '<br />';
}
Avatar billede coderdk Praktikant
09. august 2008 - 11:03 #10
måske kan

function addslashesARRAY($value)
{
$value = is_array($value) ?
array_map('addslashesARRAY', $value) :
addslashes($value);
return $value;
}


$array = array('input1','input2','input3');
$data = addslashesARRAY($array);


erstattes af


$data = array_map( "addslashes", $array );
Avatar billede cot Nybegynder
09. august 2008 - 11:52 #11
Men jeg forstår stadigvæk ikke helt...

Skal jeg bare bytte input1 ud med:
<a href="#" onclick="java script: document.getElementById('textfield3').value = '<?php echo $resultat; ?>';"><img border="0" onclick="java script: this.border='2px'; java script: this.borderColor='#000000';"  ALT="<?php echo $resultat; ?>" /></a>

Og så virker det?
Avatar billede jakobdo Ekspert
09. august 2008 - 18:46 #12
Prøv at vis de info du gerne vil have puttet ind og udskrevet random.
Så giver vi dig et færdigt resultat.
Det virker som om vi går i ring.
Avatar billede cot Nybegynder
09. august 2008 - 20:58 #13
Min kode er her:


<?php

$act = $_GET['act'];

if ($act == 'sv') { // 1-start
$nummer1 = $_POST['nummer1'];
$nummer2 = $_POST['nummer2'];
$forkert1 = $_POST['forkert1'];
$forkert2 = $_POST['forkert2'];
$svar = $_POST['svar'];
$resultat = $_POST['resultat'];

if ($svar==$resultat){ // 2-start
echo "Rigtigt!";
}// 2-slut

if ($svar!=$resultat){ // 3-start
echo "Forkert!";
}// 3-slut

} // 1-slut

else { //4-start
$nummer1 = rand(1,9);//Først nummer der skal lægges samme med nummer 2
$nummer2 = rand(3,9);//Andet nummer der skal lægges samme med nummer 1

$resultat = ($nummer1 + $nummer2); //Resultatet af de to numre lagt sammen
$forkert1 = rand(4,18);
$forkert2 = rand(4,18);

echo"".$nummer1." + ".$nummer2." = <br/>";
?>

<a href="#" onclick="java script: document.getElementById('textfield3').value = '<?php echo $resultat; ?>';"><img border="0" onclick="java script: this.border='2px'; java script: this.borderColor='#000000';"  ALT="<?php echo $resultat; ?>" /></a>

<input type="image" onclick="java script: document.getElementById('textfield3').value = '<?php echo $forkert1; ?>';" ALT="<?php echo $forkert1; ?>"/>

<input type="image" onclick="java script: document.getElementById('textfield3').value = '<?php echo $forkert1; ?>';" ALT="<?php echo $forkert2; ?>"/>
<?php
echo'<form method="post" action="stykke.php?act=sv">
  <input type="hidden" value="'.$nummer1.'" name="nummer1" id="textfield1" />
    <input type="hidden" value="'.$nummer2.'" name="nummer2" id="textfield2" />
      <input type="hidden" value="'.$forkert1.'" name="nummer1" id="textfield5" />
    <input type="hidden" value="'.$forkert2.'" name="nummer2" id="textfield6" />
      <input type="hidden" value="" name="svar" id="textfield3" />
          <input type="hidden" value="'.$resultat.'" name="resultat" id="textfield4" />
<INPUT TYPE="image" SRC="pil.gif" BORDER="0" ALT="Svar">
</form>';
} //4-slut

?>

Er lidt dum i dag, så fatter ikke lige hvad i snakker om :$ heh
Avatar billede cot Nybegynder
09. august 2008 - 20:59 #14
Btw. det er det her, der skal laves som random:
...
<a href="#" onclick="java script: document.getElementById('textfield3').value = '<?php echo $resultat; ?>';"><img border="0" onclick="java script: this.border='2px'; java script: this.borderColor='#000000';"  ALT="<?php echo $resultat; ?>" /></a>

<input type="image" onclick="java script: document.getElementById('textfield3').value = '<?php echo $forkert1; ?>';" ALT="<?php echo $forkert1; ?>"/>

<input type="image" onclick="java script: document.getElementById('textfield3').value = '<?php echo $forkert1; ?>';" ALT="<?php echo $forkert2; ?>"/>

...
Avatar billede jakobdo Ekspert
09. august 2008 - 21:47 #15
Du bør kunne bruge:

$input1 = '<a href="#" onclick="java script: document.getElementById(\'textfield3\').value = \''.$resultat.'\';"><img border="0" onclick="java script: this.border=\'2px\'; java script: this.borderColor=\'#000000\';"  ALT="'.$resultat.'" /></a>';
$input2 = '<input type="image" onclick="java script: document.getElementById(\'textfield3\').value = \''.$forkert1.'\';" ALT="'.$forkert1.'" />';
$input3 = '<input type="image" onclick="java script: document.getElementById(\'textfield3\').value = \''.$forkert2.'\';" ALT="'.$forkert2.'" />';

$data = array($input1,$input2,$input3);
shuffle($data);

foreach($data AS $input){
    echo $input . '<br />';
}
Avatar billede cot Nybegynder
09. august 2008 - 21:55 #16
ok, takker, jeg tester det lige :)
Avatar billede cot Nybegynder
09. august 2008 - 22:00 #17
desværre:

Kode:
...
$input1 = '<a href="#" onclick="java script: document.getElementById(\'textfield3\').value = \''.$resultat.'\';"><img border="0" onclick="java script: this.border=\'2px\'; java script: this.borderColor=\'#000000\';"  ALT="'.$resultat.'" /></a>';
$input2 = '<a href="#" onclick="java script: document.getElementById(\'textfield3\').value = \''.$forkerk1.'\';"><img border="0" onclick="java script: this.border=\'2px\'; java script: this.borderColor=\'#000000\';"  ALT="'.$forkert1.'" /></a>';
$input3 = '<a href="#" onclick="java script: document.getElementById(\'textfield3\').value = \''.$forkerk2.'\';"><img border="0" onclick="java script: this.border=\'2px\'; java script: this.borderColor=\'#000000\';"  ALT="'.$forkert2.'" /></a>';

$data = array($input1,$input2,$input3);
shuffle($data);

foreach($data AS $input){
    echo $input . ' ';
}

...


Output:
$input1 = ''.$resultat.''; $input2 = ''.$forkert1.''; $input3 = ''.$forkert2.'';
Avatar billede cot Nybegynder
09. august 2008 - 22:03 #18
Omg, jeg ser nu fejlen, jeg har vidst over hovedet ikke øjnene med mig :S

Jeg var komme til at sætte et: ?>

Så det slet ikke var en del af koden! :S sry
Avatar billede cot Nybegynder
09. august 2008 - 22:12 #19
smid et svar :)
Avatar billede olebole Juniormester
09. august 2008 - 22:17 #20
<ole>

Det giver ikke rigtig mening at bruge JavaScript pseudoprotokollen i en event handler, så du bør nok slette alle dine 'java script:'  =)

$input3 = '<a href="#" onclick="document.getElementById(\'textfield3\').value = \''.$forkerk2.'\';"><img border="0" onclick="this.border=\'2px\'; this.borderColor=\'#000000\';" 

/mvh
</bole>
Avatar billede cot Nybegynder
09. august 2008 - 22:23 #21
hehe ok, takker :)
Avatar billede jakobdo Ekspert
09. august 2008 - 22:24 #22
Svar!
Avatar billede cot Nybegynder
09. august 2008 - 22:25 #23
Takker for hjælpen! :)
Avatar billede jakobdo Ekspert
09. august 2008 - 22:26 #24
Takker for 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