När man tex skriver en if sats så finns det en massa jämförelser som tex "lika med" "lika med eller större än" osv.
Finns det någon som säger "innehåller"? Jag har letat och letat men hittar inget. Eller finns det något annat sätt man skriver på?
Jag vill plocka ut meningar med ett speciellt ord i nämligen.
php Conditionals and operators
16 svar · 3 704 visningar · startad av Wibbskii
Men då måste ordet man söker alltid ligga på samma ställe väl?
Om jag tex har 3 rader
1/1 Stad
3/10 Stad
12/12 Stad
Och vill ha träff på stad, kan jag använda mig av strpos då?
Nej, det behöver det inte om du använder strpos(höstack, nål) så returnerar den vilken position första bokstaven i nålen har. Om den inte hittas returnerar den FALSE.
Så, ja på din sista fråga! :-D
Tänk på att använda
if (strpos(höstack, nål) !== false)
eller
if (strpos(höstack, nål) === false)
Annars kan du missa om din nål ligger i först i höstacken (pos 0).
Vad är det för skillnad på !== och === ?
Sen får jag ett problem. Jag har två olika nålar från samma höstack, och om man väljer 1-5 alternativ med samma nål får jag rätt svar men om man väljer 1-5 alternativ med olika nålar så visas bara höstack 1. Vad kan det bero på?
Koden ser ut såhär:
<?php if (strpos($form_data['field']['32'], Östersund) !== false): ?>
<tr>
<td>Utbildningsplats</td>
<td>Jämtlands Gymnasium<br>Fyrvallavägen 4<br>831 43 Östersund</td>
</tr>
<?php endif; ?>
<tr>
<td> </td>
<td> </td>
</tr>
<?php if (strpos($form_data['field']['32'], Ljungby) !== false): ?>
<tr>
<td>Utbildningsplats</td>
<td>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
</tr>
<?php endif; ?>
Vad är det för skillnad på !== och === ?
Allt finns i dokumentationen. "a === b" ger TRUE om a och b är av samma typ och har samma värde, "a !== b" ger TRUE om de INTE är av samma typ och/eller har samma värde. Observera att det finns också "==" och "!=", som bara kontrollerar värdet av variabeln.
Vad är det för skillnad på !== och === ?
Sen får jag ett problem. Jag har två olika nålar från samma höstack, och om man väljer 1-5 alternativ med samma nål får jag rätt svar men om man väljer 1-5 alternativ med olika nålar så visas bara höstack 1. Vad kan det bero på?
Koden ser ut såhär:<?php if (strpos($form_data['field']['32'], Östersund) !== false): ?> <tr> <td>Utbildningsplats</td> <td>Jämtlands Gymnasium<br>Fyrvallavägen 4<br>831 43 Östersund</td> </tr> <?php endif; ?> <tr> <td> </td> <td> </td> </tr> <?php if (strpos($form_data['field']['32'], Ljungby) !== false): ?> <tr> <td>Utbildningsplats</td> <td>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td> </tr> <?php endif; ?>
Ja, den där koden kan nog inte fungera så bra iaf. Du måste till att börja med ha citattecken runt dina strängar. ("Östersund" och "Ljugby")
Ja, den där koden kan nog inte fungera så bra iaf. Du måste till att börja med ha citattecken runt dina strängar. ("Östersund" och "Ljugby")
Jo den fungerar kanon om man väljer antingen Ljungby eller Östersund men inte om man väljer båda.
Jag får samma resultat om jag sätter citattecken runt "Östersund" och "Ljungby"
Är det någon som vet hur man skall göra för att få med båda när man valt både "Ljungby" och "Östersund"
Vad innehåller egentligen $form_data['field']['32']?
Jag misstänker att det kommer från ett formulär. Är det möjligtvis multipla checkboxar med samma namn som du prövar att fylla i flera? För då är nog inte innehållet det du tror att det är i variabeln. Skriv ut den med var_dump($form_data['field']['32']); så får du se!
Ja det stämmer att det kommer från ett formulär. Men med alternativknappar. Och jag har tänkt helt fel. Field 32 kan bara ha ett alternativ, men sen har jag field 33,34,35,36,37 och 38 som kan vara antingen Ljungby eller Östersund. Och alla behöver inte vara ifyllda så jag skall sätta en OR mellan istället tror jag?. Alltså att om något av dessa fält innehåller "Östersund" skall ett annat fält skrivas ut.
Ja, då får du använda or-operatorn (||) och göra jämförelsen på alla strängar. Här tror jag dock att du skulle kunna lösa detta på ett smidigare sätt, men jag vet ju inte hur ditt formulär är uppbyggt.
Lite halvrelevant fråga, varför använder du inte standardformateringen på dina if-staser?
Ja, då får du använda or-operatorn (||) och göra jämförelsen på alla strängar. Här tror jag dock att du skulle kunna lösa detta på ett smidigare sätt, men jag vet ju inte hur ditt formulär är uppbyggt.
Lite halvrelevant fråga, varför använder du inte standardformateringen på dina if-staser?
Jag använder mig av Gravity Forms för att göra formulären. Ja går det att lösa på ett smidigare sätt blir jag glad :) Vad behöver du veta? Detta kanske kan hjälpa. http://dev.ctc.se/?gf_pdf=1&fid=9&lid=1155&template=utbildning.php&data=1
Anledningen till det är för att jag är en glad nybörjare som försöker lära mig php :)
Jag använder mig av Gravity Forms för att göra formulären. Ja går det att lösa på ett smidigare sätt blir jag glad :) Vad behöver du veta? Detta kanske kan hjälpa. http://dev.ctc.se/?gf_pdf=1&fid=9&lid=1155&template=utbildning.php&data=1
Länken ger bara fel, ingen sådan tråd finns? :q
I vilket sammanhang väljs städerna? Är det som olika alternativa svar på samma fråga, eller har du fler olika frågor som har flera städer som möjliga svar?
Ursäkta för sent svar. Jag löste det på detta sätt.
<?php
if (strpos($form_data['field']['32'], Ljungby) !== false) {
echo
'<tr>
<td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
<td> </td>
</tr>';
} elseif (strpos($form_data['field']['33'], Ljungby) !== false) {
echo
'<tr>
<td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
<td> </td>
</tr>';
} elseif (strpos($form_data['field']['34'], Ljungby) !== false) {
echo
'<tr>
<td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
<td> </td>
</tr>';
} elseif (strpos($form_data['field']['35'], Ljungby) !== false) {
echo
'<tr>
<td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
<td> </td>
</tr>';
} elseif (strpos($form_data['field']['36'], Ljungby) !== false) {
echo
'<tr>
<td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
<td> </td>
</tr>';
} elseif (strpos($form_data['field']['37'], Ljungby) !== false) {
echo
'<tr>
<td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
<td> </td>
</tr>';
} elseif (strpos($form_data['field']['38'], Ljungby) !== false) {
echo
'<tr>
<td><strong>Utbildningsplats Ljungby</strong><br>CTC/Enertech AB<br>Näsvägen 8<br>341 34 Ljungby<br>Tel: 0372-88 000<br><a href="http://www.ctc.se" target="_blank">www.ctc.se</a></td>
<td> </td>
</tr>';
} else {
echo
'<tr>
<td><strong>Utbildningsplats Östersund</strong><br>Jämtlands Gymnasium<br>Fyrvallavägen 4<br>831 43 Östersund</td>
<td> </td>
</tr>';
}
?>
Varför envisas du med att inte ha citattecken " eller ' vid dina strängar?
'Ljungby'
Om du sätter error_reporting(E_ALL); ,som du bör ha när du kodar, så ser du PHP gnälla om dom.
Varför envisas du med att inte ha citattecken " eller ' vid dina strängar?
Det undrar jag också. Kan man verkligen göra så?