JavaScript — как получить значение, нажав и получить идентификатор?

Я хочу создать функцию, которая позволит мне щелкнуть по квадрату с идентификатором цветов, в ответ меня id = «retours_couleurs» предложение, содержащее цвета, содержащиеся в таблице в файлах php, извините за мой английский, я французский

это мой HTML-код

<fieldset class="appel">
<code>
Un clic simple sur le carré bleu appelle le contenu du fichier couleurs.php, en transmettant en paramètre l'ID de ce carré. La réponse du fichier appelé devra s'afficher dans l'espace prévu à cet effet (id="retour_couleurs").
</code>
</fieldset>
<br />
<fieldset class="appel">
<div class="carre-couleurs">
<div class="carre" id="jaune"></div>
<div class="carre" id="rouge"></div>
<div class="carre" id="bleu"></div>
<div class="carre" id="vert"></div>
<div class="clear"></div>
</div>
<br />
<br />
<fieldset class="retour">
<legend>Contenu du fichier</legend>
<div id="retour_couleurs"></div>
</fieldset>
</fieldset>

это моя функция ajax

function appel_contenue_couleur(){
var cM = new XMLHttpRequest();
cM.open("POST","fichiers/couleurs.php",true);
cM.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var couleur = this.id;
var retour_couleurs = document.getElementById('retour_couleurs');
cM.send("retour= "+couleur);
cM.onreadystatechange = function (){
if (cM.readyState == 4 && cM.status == 200)
{
retour_couleurs.innerHTML=cM.responseText;
}
}}

а это мой php код

$_couleurs = array("jaune", "rouge", "bleu", "vert");

$_citations = array(
"L’herbe est toujours plus verte ailleurs",
"La terre est bleue comme une orange",
"Le ciel est un oeuf, la terre en est le jaune",
"Mieux vaut rester rouge cinq minutes que jaune toute la vie",
"C'était un moustique snob. Il ne buvait que du sang bleu");
$couleurs = $_POST['retour'];
if (in_array($couleurs,$_couleurs)){
for ($i=0;$i<count($_citations);$i++){
if (in_array ($couleurs,$_citations[$i])){
echo $_citations[$i];
}
}

}

0

Решение

Полный код:
Javascript:

function appel_contenue_couleur(obj){var cM = new XMLHttpRequest();
cM.open("POST","colors.php",true);
cM.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var couleur = obj.id;

var retour_couleurs = document.getElementById('retour_couleurs');
cM.send("retour= "+couleur);
cM.onreadystatechange = function (){
if (cM.readyState == 4 && cM.status == 200)
{
retour_couleurs.innerHTML=cM.responseText;
}
}}

HTML:

 <div class="carre-couleurs">
<div class="carre" id="jaune" onclick="appel_contenue_couleur(this);">1111111</div>
<div class="carre" id="rouge" onclick="appel_contenue_couleur(this);">222222222</div>
<div class="carre" id="bleu" onclick="appel_contenue_couleur(this);">33333333</div>
<div class="carre" id="vert" onclick="appel_contenue_couleur(this);">444444444444</div>
<div class="clear"></div>
</div>

PHP:

$colors = array("jaune", "rouge", "bleu", "vert");
$citations = array(
"L’herbe est toujours plus verte ailleurs",
"La terre est bleue comme une orange",
"Le ciel est un oeuf, la terre en est le jaune",
"Mieux vaut rester rouge cinq minutes que jaune toute la vie",
"C'était un moustique snob. Il ne buvait que du sang bleu");
$color = trim($_POST['retour']);

//echo $color;

if (in_array($color,$colors)){for($i=0;$i<count($citations);$i++) {

if(stripos($citations[$i],$color)!==false) {echo $citations[$i].'<br>';}
}
}

Работает, 100%, проверено. Просто измените ссылки, если это необходимо.

0

Другие решения

Если я правильно понял вашу проблему, вы не получите никакого вывода из запроса AJAX. Это, вероятно, потому что вы используете неправильную функцию PHP, чтобы проверить, содержит ли предложение определенное слово.

Попробуйте с этим:

if (stripos($_citations[$i], $couleurs) !== false) {
echo $_citations[$i];
}

я использовал stripos потому что вы, вероятно, не хотите делать проверку с учетом регистра.

1

По вопросам рекламы [email protected]