Met 1 option value meerdere php`s uitvoeren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander Zijnstra

Sander Zijnstra

23/09/2012 21:24:01
Quote Anchor link
Ik wil graag het volgende script in plaats van 1 meerdere php bestanden laten aanroepen. Bijv

UIT
schakelen.php?kanaal=a9&actie=uit&optie=0
schakelen.php?kanaal=a10&actie=uit&optie=0
schakelen.php?kanaal=a11&actie=uit&optie=0

AAN
schakelen.php?kanaal=a9&actie=aan&optie=0
schakelen.php?kanaal=a9&actie=aan&optie=0
schakelen.php?kanaal=a9&actie=aan&optie=0

<li>
<label for="slider"><font size="4px">Spot houtkast</font></label><br>
<select name="slider" id="houtkast" data-role="slider">
<option value="schakelen.php?kanaal=a9&actie=uit&optie=0">OFF</option>
<option value="schakelen.php?kanaal=a9&actie=aan&optie=0">ON</option>
</select>
</li>

Javascript

<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
$('#spot, #led, #bank, #living, #boom, #houtkast, #stopcontact, #potten, #plafondspot, #haard').change(function(e) { // wanneer de gebruiker de select verandert, doen we dit:
// Ajax aanroepen
var url = $(this).val(); // this is de <select>. .val() haalt de value op
$.ajax({
url: url,
success: function(message) {
}
});
});
})
</script>

PHP

if (isset($_GET['actie']) && $_GET['actie'] === 'aan') {
echo 'lamp is aan!';
}
else {
echo 'lamp is uit!';
}
 
PHP hulp

PHP hulp

03/05/2024 08:33:44
 
Kris Peeters

Kris Peeters

24/09/2012 11:29:41
Quote Anchor link
Ja, geen probleem.
Je kan ook drie ajax requests doen ipv. 1.

Dat moet dan zoiets worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
...
          // Ajax aanroepen
          var aan_uit = $(this).val(); // this is de <select>.  .val() haalt de value op
          $.ajax({
            url: 'schakelen.php?kanaal=a9&actie=' + aan_uit + '&optie=0',
            success: function(message) {
              // boodschap tonen in de div
              $('#message').html(message);
            }
          });
          $.ajax({
            url: 'schakelen.php?kanaal=a10&actie=' + aan_uit + '&optie=0',
            success: function(message) {
              // boodschap tonen in de div
              $('#message').html(message);
            }
          });
          $.ajax({
            url: 'schakelen.php?kanaal=a11&actie=' + aan_uit + '&optie=0',
            success: function(message) {
              // boodschap tonen in de div
              $('#message').html(message);
            }
          });
...
Gewijzigd op 24/09/2012 11:30:40 door Kris Peeters
 
Sander Zijnstra

Sander Zijnstra

24/09/2012 23:11:24
Quote Anchor link
Ziet er super uit, lijkt me ook de meest ideale manier om het te doen, maar als ik het script toevoeg, dan laad de hele app niet meer...
 
- Ariën  -
Beheerder

- Ariën -

24/09/2012 23:11:54
Quote Anchor link
Ligt het aan mij of wordt deze vraag steeds keer op keer gesteld?

Anyway, wat werkt er niet aan? Je hebt jQuery wel geladen neem ik aan?
Gewijzigd op 24/09/2012 23:12:48 door - Ariën -
 
Sander Zijnstra

Sander Zijnstra

24/09/2012 23:13:45
Quote Anchor link
Had hem eerst in het andere forum gesteld, maar zag hem daar niet toegevoegd worden. Later stond hij er wel tussen, excuus hiervoor.
 
- Ariën  -
Beheerder

- Ariën -

24/09/2012 23:14:58
Quote Anchor link
Maar goed, wat werkt er niet aan? Wat gebeurt er? Wat heb je aan relevante code?
 
Sander Zijnstra

Sander Zijnstra

24/09/2012 23:19:07
Quote Anchor link
Scherm blijft wit.
HTML
<label for="slider"><font size="4px">Spot houtkast</font></label><br>
<select name="slider" id="houtkast" data-role="slider">
<option value="schakelen.php?kanaal=a9&actie=uit&optie=0¦">OFF</option>
<option value="schakelen.php?kanaal=a9&actie=aan&optie=0¦">ON</option>
</select>

<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
$('#spot, #led, #bank, #living, #boom, #stopcontact, #potten, #plafondspot, #haard').change(function(e) { // wanneer de gebruiker de select verandert, doen we dit:
// Ajax aanroepen
var url = $(this).val(); // this is de <select>. .val() haalt de value op
$.ajax({
url: url,
success: function(message) {
}
});
});
})
</script>

<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
$('#houtkast').change(function(e) { // wanneer de gebruiker de select verandert, doen we dit:
// Ajax aanroepen
var aan_uit = $(this).val(); // this is de <select>. .val() haalt de value op
$.ajax({
url: 'schakelen.php?kanaal=a9&actie=' + aan_uit + '&optie=0',
success: function(message) {
// boodschap tonen in de div
$('#message').html(message);
}
});
$.ajax({
url: 'schakelen.php?kanaal=a10&actie=' + aan_uit + '&optie=0',
success: function(message) {
// boodschap tonen in de div
$('#message').html(message);
}
});
$.ajax({
url: 'schakelen.php?kanaal=a11&actie=' + aan_uit + '&optie=0',
success: function(message) {
// boodschap tonen in de div
$('#message').html(message);
}
});
</script>
 
- Ariën  -
Beheerder

- Ariën -

24/09/2012 23:47:30
Quote Anchor link
Waar zijn de ID's voor #spot, #led, #bank, #living, #boom, #stopcontact, #potten, #plafondspot, #haard?
 
Sander Zijnstra

Sander Zijnstra

24/09/2012 23:56:11
Quote Anchor link
Dat zijn id`s van switches die lampen aan sturen.

<ul data-role="listview" data-inset="true">
<li style='background: -webkit-linear-gradient(top, #7e5098 0%,#72448b 50%,#6c3b87 50%,#683385 100%);'>
<h1><font color="white">Keuken</font></h1>
</li>
<li>
<label for="slider"><font size="4px">Plafondspot</font></label><br>
<select name="slider" id="spot" data-role="slider">
<option value="schakelen.php?kanaal=a4&actie=uit&optie=0">OFF</option>
<option value="schakelen.php?kanaal=a4&actie=aan&optie=0">ON</option>
</select>
</li>
<li>
<label for="slider"><font size="4px">Led koffiehoek</font></label><br>
<select name="slider" id="led" data-role="slider">
<option value="schakelen.php?kanaal=b1&actie=uit&optie=0">OFF</option>
<option value="schakelen.php?kanaal=b1&actie=aan&optie=0">ON</option>
</select>
</li>
</ul>

etc, etc....

Elke id roept een php link aan via ajax welke weer kastje aan mijn server aanstuurt.

Hoe kan ik overigens mijn scripts netjes in een venster zetten op het forum?
 
- Ariën  -
Beheerder

- Ariën -

25/09/2012 00:13:56
Quote Anchor link
[code] en [/code]
 
Kris Peeters

Kris Peeters

25/09/2012 10:42:47
Quote Anchor link
Sander, er zitten nog syntax errors in die code. Elke "{" moet gesloten worden met ""}. Elke "(" met ")" .
Tel ze eens bij jou ...

----

Een kleine aanpassing: ik haal de url uit de <option>. Juist value="aan" (ofwel uit).
Op die manier werkt dit: var aan_uit = $(this).val();

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<body>
<label for="slider"><font size="4px">Spot houtkast</font></label><br>
<select name="slider" id="houtkast" data-role="slider">
  <option value="uit">OFF</option>
  <option value="aan">ON</option>
</select>
<div id="message"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
  $('#houtkast').change(function(e) { // wanneer de gebruiker de select verandert, doen we dit:
    // Ajax aanroepen
    var aan_uit = $(this).val(); // this is de <select>. .val() haalt de value op
    $.ajax({
    url: 'schakelen.php?kanaal=a9&actie=' + aan_uit + '&optie=0',
      success: function(message) {
        // boodschap tonen in de div
        $('#message').html(message);
      }
    });
    $.ajax({
      url: 'schakelen.php?kanaal=a10&actie=' + aan_uit + '&optie=0',
      success: function(message) {
        // boodschap tonen in de div
        $('#message').html(message);
      }
    });
    
    $.ajax({
      url: 'schakelen.php?kanaal=a11&actie=' + aan_uit + '&optie=0',
      success: function(message) {
        // boodschap tonen in de div
        $('#message').html(message);
      }
    });
  });
});
</script>
</body>


Als je extra gegevens in een html element wil steken, kan je trouwens werken met data-...

bv. <div id="mijn_div" data-url="http://phphulp.nl">
=>
var url = $("#mijn_div").data('url');
Gewijzigd op 25/09/2012 10:52:54 door Kris Peeters
 
Sander Zijnstra

Sander Zijnstra

25/09/2012 22:26:58
Quote Anchor link
Het werkt, haha! Super. In eerste instantie werkt het niet, maar nadat ik de regel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>


eruit heb gehaald werkt het super. Bedankt voor de tip ik zal de code nog nalopen en netter opmaken.

Toevoeging op 25/09/2012 22:47:25:

Kan ik die code intergreren in mijn huidige script?

Dus

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
  $('#houtkast').change(function(e) { // wanneer de gebruiker de select verandert, doen we dit:
    // Ajax aanroepen
    var aan_uit = $(this).val(); // this is de <select>. .val() haalt de value op
    $.ajax({
    url: 'schakelen.php?kanaal=b1&actie=' + aan_uit + '&optie=0',
      success: function(message) {
        // boodschap tonen in de div
        $('#message').html(message);
      }
    });
    $.ajax({
      url: 'schakelen.php?kanaal=a4&actie=' + aan_uit + '&optie=0',
      success: function(message) {
        // boodschap tonen in de div
        $('#message').html(message);
      }
    });

    $.ajax({
      url: 'schakelen.php?kanaal=a2&actie=' + aan_uit + '&optie=0',
      success: function(message) {
        // boodschap tonen in de div
        $('#message').html(message);
      }
    });
  });
});


</script>


met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
    <script>
      $(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
        $('#spot, #led, #bank, #living, #boom, #stopcontact, #potten, #plafondspot, #haard').change(function(e) { // wanneer de gebruiker de select verandert, doen we dit:
          // Ajax aanroepen
          var url = $(this).val(); // this is de <select>.  .val() haalt de value op
          $.ajax({
            url: url,
            success: function(message) {
            }
          });
        });
      })

    </script>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.