webForumDet fria alternativet

Praktisk skillnad ' och " ?

4 svar · 1 456 visningar · startad av biggles-1

biggles-1Medlem sedan jan. 2005125 inlägg
#1

God kväll,

Då jag letat fel i mina försök att integrera Payson, visar det sig att jag hittade något som gjorde mig ställd. Där jag använt " i mina formulär, använder andra uppenbarligen även ' ! Har detta någon praktisk betydelse i samband med formulär/submit eller .....?

Detta är hur jag hittills gjort:

<input type="hidden" name="BuyerEmail" value="test@mindomain.se"> 
<input type="hidden" name="BuyerFirstName" value="Nils"> 
<input type="hidden" name="BuyerLastName" value="Efternamn">  
<input type="hidden" name="Cost" value="140">

Detta är vad jag nu får ut och som kanske är en del av mitt "problem":

<input type='hidden' name='BuyerEmail' value='test@mindomain.se' />
<input type='hidden' name='BuyerFirstName' value='Nils' />
<input type='hidden' name='BuyerLastName' value='Efternamn' />
<input type='hidden' name='Cost' value='4' />

Följande kodsnutt ger resultatet ovan och jag skulle egentligen vilja ha det på mitt sätt *ler*.

<?php
$poststring = '';
	foreach($fields AS $key => $val){
	$poststring .= "<input type='hidden' name='$key' value='$val' />";
	 }
	?>
	<form method="post" action="<?php echo $url ?>" >
	<?php echo $poststring ?>
					
	<input type="submit" name="submit" value="Nästa">
</form>

Att ändra ' till " får kodsnutten att låsa sig. Några förslag?

mvh Nils

metalboyMedlem sedan jan. 2005953 inlägg
#2

I HTML-taggar är det ingen skillnad på apostrof (') och citationstecken (").

I PHP är det skillnad.
I en sträng som avgränsas av apostrofer kommer ingen variabelsubstitution äga rum. Apostrofer inom en sträng avgränsad av apostrofer måste "escape:as".

I en sträng som avgränsas av citationstecken kommer variabelsubstitution äga rum. Citationstecken inom en sträng avgränsad av citationstecken måste "escape:as".

Läs mer här:
http://se.php.net/manual/en/language.types.string.php

biggles-1Medlem sedan jan. 2005125 inlägg
#3

Tack metalboy för snabbt svar!

Hm .... ser att även du hänvisar till php.net, som för många säkert är en bibel, men för mig som nybörjare kan den även vara ganska skrämmande *ler*.

Trevlig kväll / Nils

aasahMedlem sedan mars 20034 471 inlägg
#4

I SQL är det också skillnad, så om du någongång vill blanda in en databas via SQL så spelar det också roll. SQL använder enkelfnutt: 'hej'.

Du escape:ar vid behov med \ .

$myStr = 'Kalle sa: "Kommer du ihåg?" '
$myStr2 = "Kalle sa:  \"Kommer du ihåg?\" "
$myStr3 = "SELECT * FROM Mytable WHERE Description = 'krage' "
$myStr3 = 'SELECT * FROM Mytable WHERE Description = \'krage\' '

biggles-1 skrev:

Följande kodsnutt ger resultatet ovan och jag skulle egentligen vilja ha det på mitt sätt *ler*.

<?php
	$poststring .= "<input type='hidden' name='$key' value='$val' />";

Ändra till:

	$poststring .= "<input type=\"hidden\" name=\"$key\" value=\"$val\" />";
 	// Eller också måste variablerna evalueras innan de hamnar i strängen
	$poststring .= '<input type="hidden" name="' + $key + '" value="' + $val +'" />';
biggles-1Medlem sedan jan. 2005125 inlägg
#5

Tack aasah,

.. för klargörande, för det är många handtag på det här spettet *ler*.

mvh Nils

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