Ses derniers messages sur les forums
C'est souvent le plus simple qui est le plus compliqué ;)
Qu'on ne te sort pas *que* des conneries :p Ça m'arrive.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Non, ce n'est pas stupide. Ce qui l'est c'est de ne pas progresser ;)
1. Certes, j'ai été un peu zelé. Je suis moi-même un chasseur de parenthèses inutiles. Mais parfois, ça aide à clarifier le code, donc elles ont toute leur utilité.
À noter que tu n'as pas compris ce qu'est la variable tuner. La variable tuner est une instance de la fonction anonyme définie (celle que j'ai mis entre parenthèses).
2. Et tu ne veux pas tout le programme en plus ? :p Il faut bien que tu ais encore des choses à faire, pour te prouver que tu as compris le sens du code. En l'occurrence, tu as compris ce point, et tu sais donc comment ajouter toutes les options dont tu as besoin. C'est d'ailleurs le sens de ma dernière phrase.
3. J'ai effectivement oublié de te montrer comment utiliser ce code. Au temps pour moi. En fait, le window.open est effectué à la ligne 9 (window est l'objet global, toutes les portées de variables « héritent » de la portée supérieure à leur déclaration. Ceci signifie que tout les attributs de l'objet global window sont toujours vu depuis une fonction,
sauf s'ils sont cachés par une variable déclarée dans une portée intermédiaire.
En fait, pour utiliser le code, il suffit d'associer l'appel de méthode de l'objet tuner dans un événement.
Si tu utilise jQuery :
$('button.tune').click(function () { tuner.open(this.value) }) ;
Avec des bouttons dans ce genre :
<button class='tune' value='Europe 1'>
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Ton code initial donne un nombre entre 0 et 51.
Pour le choix d'un nombre entre 25 et 50. En fait il suffit de penser que tu va choiir un des 25 + 1 nombres compris entre 25 et 50, c'est à dire une position parmis 26.
Le raisonnement amène à écrire ceci :
var n = 25 + Math.floor(Math.random() * (50 - 25)) ;
Pourquoi parle-tu de Java ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Dans le but d'éviter de devoir afficher trop de choses en BODY […].
J'avoue ne pas comprendre cette phrase.
En ce qui concerne le problème, tu pourrais écrire un code dans ce goût là :
tuner = new (function() {
var channels =
{ 'Europe 1': {'url': 'url vers la radio', 'layout': {'height': '110', 'width': '20'}}
}
this.open = function(name)
{
var channel = channels[name] ;
open(channel.url, createOptions(channel.layout))
}
var createOptions = function(layout)
{
var options = [] ;
if(layout.hasOwnProperty('height') > -1)
options.push('height=' + layout.height) ;
return options.join(';') ;
}
})
Bien sûr il faut ajouter les canaux (channels) nécessaires pour chaque radio, ajouter des options pour la construction de la chaîne d'options de la fonction window.open, etc.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bon, j'espère que ce n'est pas du code en production que tu nous montre là.
Je pense aux injections SQL possibles (mysqli::real_escape_string est ton amie), et les attaques par injection PHP (require "$variable.php" est ton ennemi).
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
En gros, tu peux faire quelque chose dans ce goût là :
<?php
$con = new mysqli(/* voir http://www.php.net/mysqli */) ;
// En assumant que la variable HTTP soit record[]
$datas = $_POST['record'] ;
// Protection anti-injection
$datas = array_map(array($con, 'real_escape_string'), $datas) ;
function quote($s) { return "'$s'" ; }
$datas = array_map('quote', $datas) ;
$sql = 'insert into my_table (record) values ' . implode($datas, ', ') ;
$con->query($sql) ;
J'assume que les données du formulaire peuvent être introduite sans logique métier
additionnelle, et donc injecte directement les données en base
Je ne fais aucun contrôle d'aucune sorte. Je te conseille de lire la documentation de chaque fonction que j'ai utilisé.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(vince62fr) Tu devrais lire la charte du forum, et en conséquence ouvrir un nouveau sujet dans le forum. C'est mal de venir réssuciter un vieux fil de discussion.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
C'est la partie la plus difficile ;) En fait, ici PHP te servira à décider ce que l'application doit faire des données reçues. Ces instructions dépendent de ce que tu veux faire exactement. En gros, le principe est :
[list]
[*] extraire les données transmises par le navigateur
[*] décider si les données reçues sont attendues
[*] traiter les données
[*] afficher le résultat
[/list]
Le code PHP dépendra entièrement de ce que tu veux faire, et quels sacrifices tu es prêt à faire.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
C'est un formulaire ordinaire.
Par contre, j'ai l'impression que tu ne comprends pas quel est ton problème. En effet, le problème n'est pas l'envoie des données saisies dans le formulaire dynamique, mais plutôt sa récupération.
Regarde le contenu de $_POST pour voir ce que le navigateur envoie.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Le plus simple est de faire un replace.
<?php $query = "replace $table values ('$newPlayer', if($newscore > score, $newScore, score))" ;
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.