Vous n'êtes pas identifié(e).
Pages :: 1
bonjour,
Je voudrai faire un petit script "d'apprentissage".
Comment faire pour avoir un Select, avec les nom récupérédans une table sql.
et de pouvoir aussi si le nom n'est dans la liste l'ajouter.
Je sais que je pourrai utilisé un TEXT d'un coté et un SELECT de l'autre.
Mais j'aimerai si possible n'avoir qu'un champt pour les 2.
Je ne sais pas si c'est possible.
Merci d'avance.
Hors ligne
Ce qui se conçoit bien s'énonce clairement,
et les mots, pour le dire, arrivent aisément.
Comme je ne comprends pas grand chose à la problématique énoncée, dois-je en conclure que tu ne l'énonces pas clairement et, partant, que tu ne conçois pas bien ce que tu souhaites exprimer ?
L'implicite et le non-dit sont les pires ennemis de la communication et, donc, de l'analyste en informatique.
Quant au mal dit ...
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
En fait je voudrai pouvoir écrire dans unne liste:
Si l'option n'est pas disponible dans la liste.
Sans pour autant devoir rajouter un textbox à coté.
Hors ligne
Décidément, ça frise l'autisme.
Dans quel contexte veux-tu ajouter une option dans cette foutue liste ?
Fais-tu référence à une technologie AJAX ?
Il faut vraiment te tirer les vers du nez.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
je ne fait référence à aucune technologie justement, je cherche.
C'est pour le site de voiture que je créé,
j'ai la liste des marques, mais si l'on veut ajouter une voiture dont la marque n'est pas dans la liste, je voudrai pouvoir écrire dans la liste comme dans un texbox, pour ajouter la marque lors de la validation du formulaire.
Hors ligne
Afin que l'on puisse vous aider, il faut :
- EXPLIQUER l'objectif [faut savoir où on veut arriver]
- exposer les techniques mises en œuvre [étape subsidiaire : c'est en fait le "Comment". On conçoit qu'un débutant ne sache pas comment.
- montrer le travail déjà effectué. [on est là pour vous aider, vous guider; et non pour faire du codage à votre place.]
- accepter la critique et concevoir tout recommencer ^^ [faire et défaire ]
Désolé, morgan47, mais même avec la meilleure volonté, je ne comprends rien à ce que tu demandes...
Tente de respecter le schéma de démarche ci-dessus.
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Bon, ça s'éclaircit un peu.
Ce que tu veux faire passe par un item <option onclick="javascript:autremarque()">Autre marque</option>
A toi ensuite de gérer le javascript sous-jacent qui peut, dans l'aboslu, voire via AJAX, permettre d'ajouter l'option dans la liste et de la sélectionner.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Voila ce que j'ai fait :
function ajout_marques ($marque)
{
$sql = "INSERT INTO liste_marques (marque) VALUES ('$marque')";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
function request1(page,variable,idmodif) {
var xhr = getXhr()
xhr.open("POST", page, true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//xhr.send(null);
xhr.send(variable);
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
//alert(xhr.responseText);
document.getElementById(idmodif).innerHTML = xhr.responseText;
}
}
}
if (isset($_POST['marque'])){
$marque = $_POST['marque'];
connect_sql ();
ajout_marques ($marque);
liste_marques ();
}
?>
tout fonctionne bien.
Mais maintenant j'aimerai que la nouvelle ligne qui a été ajouté soit sélectionné.
Je pourrai le faire en php, lors de la génération de la liste, mais est ce que c'est possible en php?
Merci encore
Hors ligne
Saluton,
Au passage, et pour t"éviter bien des déboires, je te conseille d'abandonner la syntaxe short tags. Le balisage php c'est <?php ..?> et rien d'autre.
Bien sûr que tu peux forcer l'option selcted="selected" dès la construction en php.
Il te suffit de modifier légèrement ta fonction liste_marques($option=null) dans laquelle tu testeras si $option n'est pas null. Bien sûr tu dois modifier l'appel PHP dans "ajax/marques.php"
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Merci pour ta réponse. j'ai réussi à le faire
Par contre j'ai un autre soucis avec ajax.
lorsque j'insère des caractères spéciaux des "éà..." ca m'affiche des caractère bizarre dans ma base.
J'ai trouvé sur internet que c'était ajax qui par défaut encode en utf-8, mais je n'arrive pas a forcé ajax à travailler en iso.
Il y a une solution?
Pour l'instant, je fait un utf8_decode avant l'insertion.
Hors ligne
C'est un peu n'importe quoi
J'ai trouvé sur internet que c'était ajax qui par défaut encode en utf-8
ce n'est pas Ajax qui écrit dans la base, ce n'est pas PHP, non plus d'ailleurs, c'est le SGBDR en fonction des valeurs que PHP lui passe dans la requête.
C'est donc bien à cet endroit là qu'il faut appliquer le traitement.
Et si tu utilises PDO, c'est en amont de PDO dans le script PHP appelant
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Ce que je veux dire par Ajax et utf-8
C'est que :
les variables sont encodé en utf-8 lors de l'envoi.
Car lorsque je passe par un formulaire normal, l'enregistrement dans la table se fait correctement.
Dernière modification par morgan47 (24-09-2009 14:20:02)
Hors ligne
J'entends bien, mais de toute façon c'est PHP qui réceptionne pour transmettre à MySQL.
Je regarderai ce soir dans ma littérature ajaxienne s'il y a un paramétrage spécifique du XHR, mais je ne crois pas.
[edit] recherches infructueuses. Je n'ai rien trouvé sur ce sujet dans ma littérature.
Désolé, mais ta solution de traiter les données à coup de utf8_decode() en PHP est tout à fait efficace et, après réflexion, une sage précaution.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
J'ai réussi en faisant sur l a page d'insertion/récupération des données :
Hors ligne
Tu devrais peut-être chercher du côté de la méthode setHeaderRequest de l'objet XHR, mais sans garantie de succès.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Pages :: 1