Javascript en php?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Dennis van Dijk

Dennis van Dijk

07/07/2011 20:00:19
Quote Anchor link
Hallo,

Ik heb een invulform gemaakt en zag op een andere website dat als je dan de PC invult hij zelf de straat aanvult, als je het veld uit tapt.
Via een php script kan ik de PC omzetten naar een straat.
Is het ook mogelijk om tijdens het invullen van de velden de waardes van een veld door het PHP script te laten afhandelen zodat ik in het veld 'woonplaats' de woonplaats kan laten echo'en?

Groet,
Dennis
 
PHP hulp

PHP hulp

24/11/2024 12:22:23
 
Victor -

Victor -

07/07/2011 23:17:48
Quote Anchor link
dan moet je met ajax / jquery gaan werken.
 
Dennis van Dijk

Dennis van Dijk

07/07/2011 23:24:27
Quote Anchor link
Oké, kan ik ergens een voorbeeldje vinden van hoe met ajax / jquery om te gaan is?
 
Victor -

Victor -

07/07/2011 23:39:00
 
Wouter J

Wouter J

08/07/2011 00:28:00
Quote Anchor link
Als je het over jQuery hebt moet je niet naar de w3schools site gaan. Link dan gewoon naar de veel uitgebreiderde en betere jQuery documentatie: http://api.jquery.com/jQuery.ajax
 
Victor -

Victor -

08/07/2011 00:33:01
Quote Anchor link
@wouter Ik veronderstel dat deze meneer weinig? Ervaring heeft met JavaScript en jquery. Voor dat soort mensen staat het op w3schools veel simpeler uitgelegd.
 
Vincent Huisman

Vincent Huisman

08/07/2011 00:48:45
Quote Anchor link
Ik heb het allemaal geleerd met de documentatie van jquery zelf, daar staan ook voorbeelden en alles is uitgelegd
 
Dennis van Dijk

Dennis van Dijk

08/07/2011 11:04:32
Quote Anchor link
Ik heb idd weinig ervaring met jquery en ajax.
Vandaar daar ik hier hoop wat aanknopingspunten te vinden.

Bedankt voor de reactie, maar denk niet dat ik er uit kom.
Gewijzigd op 08/07/2011 11:08:02 door Dennis van Dijk
 
The Force

The Force

08/07/2011 11:22:11
Quote Anchor link
Begin eerst eens met de basis van jQuery. Je zal dan zien dat wat je wilt geen rocket science is. In javascript gaan bij gebeurtenissen events af. Met jQuery moet je dan aangeven: "als bij dit element deze event af gaat dan moet je de volgende code uitvoeren". In jouw geval wil je een ajax request doen om data op te halen als een veld zijn focus verliest.

Kijk dus eens naar http://api.jquery.com/focusout/

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$("#idvanelement").focusout(function() {
  //Doe hier een ajax request.
  
  //En vervolgens zet je het resultaat in het woonplaatsveld.
  $("#woonplaats").val(resultaat);
});
 
Dennis van Dijk

Dennis van Dijk

08/07/2011 12:48:22
Quote Anchor link
Thx, ik had idd de blur functie ook gevonden en wilde dat ipv die functie .load maar dat krijg ik niet voor elkaar. Niet eens een foutmelding.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo 'test' ?>
geeft ook geen response. (in jouw code)

dit werkt gewoon goed:
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
!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  
  <p>Type something and then click or tab out of the input.</p>
  <input type="text"  id="test" value="type something" />

<script>
  $('input').bind('blur', function() {
      $(this).val(function(i, val) {
      return val.toUpperCase();
    }
);
    
  });

  </script>
</body>
</html>


Met google kom ik ook niet ver en heel simple veld met focusout krijg ik zelfs al niet werkend :-(

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
<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<script>
$("#T1").blur(function(){
        alert('TEST!');
  }
});
</script>
    <p><input type="text" id="T1" name="T1" size="20"></p>
</body>
</html>


Graag in het vervolg bij code, [code] [/code] tags gebruiken. [/modedit]
Gewijzigd op 09/07/2011 00:46:05 door Bas IJzelendoorn
 
Vincent Huisman

Vincent Huisman

08/07/2011 13:04:24
Quote Anchor link
kijk eens wat de error console zegt (in chrome [ctrl]+[shift]+[j])
 
Wouter J

Wouter J

08/07/2011 13:54:50
Quote Anchor link
Je laatste script klopt niet. Je sluit dingen die niet geopend zijn:
$("#T1").blur(function() {
alert('TEST!');
}
});

Hierbij zie je dat het rode haakje (of hoe dat heet) nergens wordt geopend, deze moet je dus weghalen.

En zou je graag voortaan [code] tags om je code willen zetten? Ik heb het hier niet gedaan omdat ik nu even met kleurtjes het wou duidelijk maken.
Gewijzigd op 08/07/2011 13:55:01 door Wouter J
 
The Force

The Force

08/07/2011 14:58:44
Quote Anchor link
Blur en focusout zijn verschillend (zie documentatie). Kijk ook bij het voorbeeld op de focusout pagina. Blur wordt niet altijd aangeroepen als je uit een veld gaat.
 
John Acid

John Acid

08/07/2011 18:26:38
Quote Anchor link
Wouter J op 08/07/2011 13:54:50:


Hierbij zie je dat het rode haakje (of hoe dat heet) nergens wordt geopend, deze moet je dus weghalen.


Die heten in het Nederlands gewoon accolades en in het Engels curly braces.
 
Dennis van Dijk

Dennis van Dijk

09/07/2011 01:56:13
Quote Anchor link
Ik heb nu onderstaande pagina.
Focus out en load url werkt.
Komt een alert en zie dat er een andere waarde in field 2 komt. Maar kan de ingelezen PHP pagina niet koppelen aan de value van het field. Kan alleen het result van test.php weergeven in de DIV.

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
<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<form>
  <input id="target" type="text" value="Field 1" />
  <input id="woonplaats" type="text" value="Field 2" />
</form>
<script>
$('#target').focusout(function() {
  alert('test');
  $('#a').load('test.php');
  $("#woonplaats").val('hier een variable uit de aangeroepen PHP pagina');
});
</script>
   <div id="a" style="background-color:blue;">
          Zomaar tekst
   </div>
</body>
</html>
 
B a s
Beheerder

B a s

09/07/2011 02:10:40
Quote Anchor link
In het PHP script wat je uitvoert om de postcode / straat te verkrijgen, dan kun je deze in een variabele zetten. Bijvoorbeeld $woonplaats.

In het scriptje, gebruik je vervolgens PHP. Dus waar op dit moment 'hier een variabele uit de aangeroepen PHP pagina' staat, zet je dan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $woonplaats; ?>


Op die manier combineer je javascript met PHP.
 
Dennis van Dijk

Dennis van Dijk

09/07/2011 10:06:54
Quote Anchor link
Bas Kreleger op 09/07/2011 02:10:40:
.....

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $woonplaats; ?>


Op die manier combineer je javascript met PHP.


Ja precies, maar dat lukt dus niet.
Ik heb in de test.php pagina staan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$adres
= 'testadres';
echo 'hallo';
?>


En het script
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<script>
$('#target').focusout(function() {
  alert('test');
  $('#a').load('test.php');
  <?php echo $adres; ?>
  $("#woonplaats").val(<?php echo $adres; ?>);
});
</script>


hallo wordt wel netje weergegeven bij de focusout net als de alert, maar op de variable uit test.php worden niet overgenomen.

Het laten echo'n van de waarde werkt sowieso niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  $("#woonplaats").val(<?php echo 'waarde'; ?>);

geeft een leeg field 2 terwijl
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  $("#woonplaats").val('waarde');

wel een waarde geeft in field 2
 
Vincent Huisman

Vincent Huisman

09/07/2011 10:09:15
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$("#woonplaats").val("<?php echo 'waarde'; ?>");


De volgende keer moet je even naar de broncode kijken, dan zul je het wel zien
Gewijzigd op 09/07/2011 10:09:54 door Vincent Huisman
 
Dennis van Dijk

Dennis van Dijk

09/07/2011 10:27:55
Quote Anchor link
Vincent Huisman op 09/07/2011 10:09:15:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$("#woonplaats").val("<?php echo 'waarde'; ?>");


De volgende keer moet je even naar de broncode kijken, dan zul je het wel zien


Thx en had het nog in een index.html staan, moet dan natuurlijk ook php worden..
MAAR
als ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2

  $("#woonplaats").val('<?php echo $adres; ?>');

gebruik voor de variable werkt het script nietmeer

Het werkt wel als ik het op deze manier laat echo'n, beetje vreemd
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo '$("#woonplaats").val("'. $adres .'");' ?>


Maar dan krijg ik weer een andere foutmelding met de variable
bron:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<script>
$('#target').focusout(function() {
  alert('test');
  $('this').load('test.php');
<br />
<b>Notice</b>:  Undefined variable: adres in <b>/postcode/index.php</b> on line <b>18</b><br />
$("#woonplaats").val("");});
</script>


Het script moet de variable natuurlijk pas aanroepen en invullen na de focusout, zou dat mij met de input van field 1 en zijn waarde test.php kan laten uitvoeren.

Toevoeging op 09/07/2011 12:57:06:

Ik heb het nu werkend, of het netjes is weet ik niet.

Thx voor de tips en antwoorden.

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
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<form>
  <input id="target" type="text" value="Field 1" />
  <input id="woonplaats" type="text" value="Field 2" />
</form>
<script>
$('#target').focusout(function() {
var postcode = $("#target").val();
 $.ajax({
            url: 'pc.php?postcode='+postcode,
            type: 'POST',
            data: '',

           success: function(result3) {
            $("#woonplaats").val(result3);
                         }
        });
});
</script>
</body>
</html>
Gewijzigd op 09/07/2011 13:12:49 door Dennis van Dijk
 
Dennis van Dijk

Dennis van Dijk

12/07/2011 15:53:09
Quote Anchor link
Mijn script ziet er nu zo uit
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
<script>
$('#target').focusout(function() {
var postcode = $("#target").val();
 $.ajax({
 
          url: 'pc3.php?postcode='+postcode,
        type: 'POST',
       data: '',

    success: function(result3) {
          
    var dataAlsString = result3;
    var dataAlsArray = new Array();
    dataAlsArray = dataAlsString.split(',');
  
       $("#woonplaats").val(dataAlsArray[0]);
       $("#adres").val(dataAlsArray[1]);
                              
        }
        });
});

</script>


Maar dat komt omdat ik het niet voor elkaar krijg de variable $variable uit te lezen die in pc3.php staan.
Of ik zet er er verkeerd in, of ik moet ze op een andere manier uitlezen.
Iemand een voorbeeldje daarvan?

Dennis
 
The Force

The Force

12/07/2011 17:23:01
Quote Anchor link
Kijk eens naar json_encode. Geef daar je array aan mee en echo de JSON string.

Waar gaat het precies fout? Heb je met Firebug in Firefox gekeken of de request aan komt en of het een resultaat teruggeeft? Als je "console.log(result3);" doet in de success function dan kan je in het "Console" tabblad van Firebug zien welk resultaat je terugkrijgt. Kortom, ga eens debuggen en kijk waar het exact fout gaat.
 

Pagina: 1 2 volgende »



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.