Значение переменной Javascript \ textarea для переменной PHP

Итак, я работаю над маской, которая фильтрует данные при <input type="button" /> .

У меня есть:

  • школьные классы (1, 2, 3, 4, 5)
  • (A, B, C …. Z)
  • и половые флажки (мужчины, женщины).

Эта маска взаимодействует с базой данных mysql, поэтому, если только один флажок установлен «мужчина», он должен вернуть мне всех мужчин в моей базе данных. Проблема в том, что я использовал javascript для фильтрации полов и создания моей строки полов, и я не знаю, как передать его переменной php, чтобы использовать ее по моему запросу.

Я смотрю онлайн в течение 3-4 дней, и все рекомендуют использовать $ _POST. Если я использую $ _POST, он говорит, что переменная не определена. Я искал эту ошибку в Интернете, и она говорит, чтобы добавить элемент управления с isset. Я сделал это, но ничего не работает, потому что это дает мне новую ошибку «неопределенный индекс».

Так что мне нужна помощь для передачи значения переменной javascript в переменную php (я знаю, что это сложно, потому что javascript является клиентской стороной, а php – серверной) или напрямую передает текст textarea (я могу отображать результат javascript в текстовом поле), чтобы переменная php.

Может кто-нибудь мне помочь?

Вот мой index.php:

 <?php require 'connection.php' ?> <html> <script src="scripts.js"></script> <form name="code" method="post" action="query.php; <?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> <table border="0"> <!-- ROW1 --> <tr> Da codice <input type="text" name="dacode"> a codice <input type="text" name="acode"> </tr> </form> <!-- ROW2 --> <form id="sexform" name="sexform"> <tr> <td></td> <td> Sesso <input type="checkbox" name="sex" value="Maschio"> M <input type="checkbox" name="sex" value="Femmina"> F <input type="checkbox" name="sex" value="Azienda"> G <input type="hidden" id="xxx"> </form> <!-- ROW3 --> <br> Da data nascita <input type="date" name="dadata" min="1980-01-01"> a data nascita <input type="date" name="adata" min="1980-01-01"> <!-- ROW4 --> <form id="sezform" name="sezform"> <br> Sezioni <input type="checkbox" name="sez" value="A"> A <input type="checkbox" name="sez" value="B"> B <input type="checkbox" name="sez" value="C"> C <input type="checkbox" name="sez" value="D"> D <input type="checkbox" name="sez" value="E"> E <input type="checkbox" name="sez" value="F"> F <input type="checkbox" name="sez" value="G"> G <input type="checkbox" name="sez" value="H"> H <input type="checkbox" name="sez" value="I"> I <input type="checkbox" name="sez" value="J"> J <input type="checkbox" name="sez" value="K"> K <input type="checkbox" name="sez" value="L"> L <input type="checkbox" name="sez" value="M"> M <input type="checkbox" name="sez" value="N"> N <input type="checkbox" name="sez" value="O"> O <input type="checkbox" name="sez" value="P"> P <input type="checkbox" name="sez" value="Q"> Q <input type="checkbox" name="sez" value="R"> R <input type="checkbox" name="sez" value="S"> S <input type="checkbox" name="sez" value="T"> T <input type="checkbox" name="sez" value="U"> U <input type="checkbox" name="sez" value="V"> V <input type="checkbox" name="sez" value="W"> W <input type="checkbox" name="sez" value="X"> X <input type="checkbox" name="sez" value="Y"> Y <input type="checkbox" name="sez" value="Z"> Z <br> <input type="checkbox" name="sez" value="Ai"> Ai <input type="checkbox" name="sez" value="Am"> Am <input type="checkbox" name="sez" value="Ae"> Ae <input type="checkbox" name="sez" value="Bi"> Bi <input type="checkbox" name="sez" value="Be"> Be <input type="checkbox" name="sez" value="Bm"> Bm </form> <!-- ROW5 --> <form id="claform" name="claform"> <br> Sezioni <input type="checkbox" name="cla" value="1"> 1 <input type="checkbox" name="cla" value="2"> 2 <input type="checkbox" name="cla" value="3"> 3 <input type="checkbox" name="cla" value="4"> 4 <input type="checkbox" name="cla" value="5"> 5 <br> <br> RESULT STRING <textarea type="text" name="outputfield" id="outputfield"> </textarea> <input type="button" onclick="myFunction(); selectValues(); query();" value="Invia"> </td> </tr> </form> <br> <br> </html> 

Это мой файл query.php:

 <?php require 'connection.php'; // Inizio selezione $usedatabase = "use " . $dbname; if (isset($_POST['xxx'])) { $queryfinale = "select * from sergiodellera.mskselez where sesso='" . $_POST['xxx'] . "'" ; } //$final1 = mysql_query($usedatabase) or die(mysql_error()); //$final2 = mysql_query($queryfinale) or die(mysql_error()); //$query = mysql_query($queryfinale); //$row = mysql_fetch_row($query); //$final2 = $row[5]; echo $queryfinale; ?> 

и это мой файл js:

 function myFunction() { var sex = document.forms["sexform"]; var sez = document.forms["sezform"]; var cla = document.forms["claform"]; var txt = ""; var txtsex = ""; var txtsez = ""; var txtcla = ""; var isex; var isez; var icla; //FOR SEX for (isex = 0; isex < sex.length; isex++) { if (sex[isex].checked) { txtsex = txtsex + sex[isex].value; } } //FOR SEZ for (isez = 0; isez < sez.length; isez++) { if (sez[isez].checked) { txtsez = txtsez + sez[isez].value; } } //FOR CLA for (icla = 0; icla < cla.length; icla++) { if (cla[icla].checked) { txtcla = txtcla + cla[icla].value; } } txtsex = txtsex; txtsez = txtsez + ";"; txtcla = txtcla + ";"; txt = txtsex + txtsez + txtcla; for (sexfor = 0; sexfor < txtsex.length; sexfor++) { if (txtsex.length = 22){ var asex = txtsex; var bsex = asex.substring(0, 1); var csex = asex.substring(7, 8); var dsex = asex.substring(14, 15); } if (txtsex.length = 15){ var asex = txtsex; var bsex = asex.substring(0, 1); var csex = asex.substring(7, 8); } if (txtsex.length = 8){ var asex = txtsex; var bsex = asex.substring(0, 1); } break; } sexcontainer = bsex + csex + dsex; document.getElementById("outputfield").value = sexcontainer; //myFunction() } function selectValues(){ document.getElementById('xxx').value = sexcontainer; return true; } function query() { window.open("query.php"); } 

Я ожидаю, что если я посмотрю, например, на мужские и женские флажки, у меня будет строка типа «MF». Итак, через переменную php у меня будет select * from tablename where sex=$varsex где varsex – MF

Related of "Значение переменной Javascript \ textarea для переменной PHP"

(Это была основная работа, которая имеет лишь ограниченную функциональность, которую я попытаюсь улучшить, если у меня будет время – у нее могут быть технические недостатки – она ​​предназначена только для указания того, что, по моему мнению, необходимо – вам нужно будет отсортировать результаты.)


Скрытый ввод будет $_POST['all_sexes'] вашим php как $_POST['all_sexes'] и вы можете сделать что-то подобное для других элементов. Трудный бит может состоять в том, чтобы отредактировать результат на «unclick» или смену ума.

Вы можете использовать событие onKeyPress для текстовых полей аналогичным образом. Я бы предложил поставить все в одной форме, поскольку все они представлены вместе.

Это JavaScript:

  <script language="javascript"> var all_sexes; var sex; function make_sex(sex){ var sexes = document.getElementById('all_sexes').value if(sex == "Maschio"){sex = 'M';} if(sex == "Femmina"){sex = 'F';} if(sex == "Azienda"){sex = 'G';} if( sexes.indexOf(sex) >-1){ sex = '';} // working on what to do if unchecked and checked here all_sexes = document.getElementById('all_sexes').value + sex; document.getElementById('all_sexes').value = all_sexes; document.getElementById('outputfield').value = all_sexes; } </script> 

И вызывается функция в вашем флажке с событием onClick, передавая ему значение этого флажка.

  Sesso <input type="checkbox" name="sex" value="Maschio" onclick="make_sex(this.value)"> M <input type="checkbox" name="sex" value="Femmina" onclick="make_sex(this.value)"> F <input type="checkbox" name="sex" value="Azienda" onclick="make_sex(this.value)"> G <input type="hidden" name="all_sexes" id="all_sexes" value=""> 

Отладчик html не удовлетворен каким-то текстом за пределами промежутков, но я не здесь, чтобы посмотреть на это прямо сейчас.

И независимо от того, что вы делаете, не помещайте какое-либо значение переменной POST где-нибудь рядом с вашей базой данных, не дезинфицируя его – см. Комментарии в нижней части этой страницы.

Не уверен, действительно ли вам нужно отобразить результат клика на странице – если вы этого не сделаете, и просто хотите, чтобы представленные значения были бы гораздо лучшим подходом – заимствованным из PHP, как пропустить через массив сообщений принятый ответ

  foreach( $_POST as $stuff ) { if( is_array( $stuff ) ) { foreach( $stuff as $thing ) { echo $thing . "<br />"; } } else { echo $stuff ."<br />"; } } 

Это ваш html, который поможет вам быстро продемонстрировать, что он делает – ваш скрипт php, показанный здесь внизу, будет на вашем query.php

Существует ряд html-ошибок, в которых текст находится вне элементов таблицы, о которых жалуется отладчик, – здесь слишком много экземпляров, и, возможно, вам следует искать другую структуру, а не использовать таблицы для вашей структуры, а не divs ,

  <!DOCTYPE html> <html> <form name="code" method="post" action="<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]);?>"> <table border="0"> <!-- ROW1 --> <tr> Da codice <input type="text" name="dacode"> a codice <input type="text" name="acode"> </tr> <!-- ROW2 --> <br /> Sesso </tr> <tr> <input type="checkbox" name="Maschio" id="Maschio" value="Maschio" > M <input type="checkbox" name="Femmina" id="Femmina" value="Femmina" > F <input type="checkbox" name="Azienda" id="Azienda" value="Azienda" > G <!-- ROW3 --> <br> Da data nascita <input type="date" name="dadata" min="1980-01-01"> a data nascita <input type="date" name="adata" min="1980-01-01"> <!-- ROW4 --> <br> Sezioni <input type="checkbox" name="A" value="A"> A <input type="checkbox" name="B" value="B"> B <input type="checkbox" name="C" value="C"> C <input type="checkbox" name="D" value="D"> D <input type="checkbox" name="E" value="E"> E <input type="checkbox" name="F" value="F"> F <input type="checkbox" name="G" value="G"> G <input type="checkbox" name="H" value="H"> H <input type="checkbox" name="I" value="I"> I <input type="checkbox" name="J" value="J"> J <input type="checkbox" name="K" value="K"> K <input type="checkbox" name="L" value="L"> L <input type="checkbox" name="M" value="M"> M <input type="checkbox" name="N" value="N"> N <input type="checkbox" name="O" value="O"> O <input type="checkbox" name="P" value="P"> P <input type="checkbox" name="Q" value="Q"> Q <input type="checkbox" name="R" value="R"> R <input type="checkbox" name="S" value="S"> S <input type="checkbox" name="T" value="T"> T <input type="checkbox" name="U" value="U"> U <input type="checkbox" name="V" value="V"> V <input type="checkbox" name="W" value="W"> W <input type="checkbox" name="X" value="X"> X <input type="checkbox" name="Y" value="Y"> Y <input type="checkbox" name="Z" value="Z"> Z <br> <input type="checkbox" name="Ai" value="Ai"> Ai <input type="checkbox" name="Am" value="Am"> Am <input type="checkbox" name="Ae" value="Ae"> Ae <input type="checkbox" name="Bi" value="Bi"> Bi <input type="checkbox" name="Be" value="Be"> Be <input type="checkbox" name="sez" value="Bm"> Bm <input type="hidden" id="all_Bn" value=""> <!-- ROW5 --> <br> Sezioni <input type="checkbox" name="Chk1" value="1"> 1 <input type="checkbox" name="Chk2" value="2"> 2 <input type="checkbox" name="Chk3" value="3"> 3 <input type="checkbox" name="Chk4" value="4"> 4 <input type="checkbox" name="Chk5" value="5"> 5 </form> <br> <br> RESULT STRING <textarea type="text" name="outputfield" id="outputfield"> </textarea> <input type="submit" name="submit" value="Invia"> </td> </tr> </form> <br> <br> <?php foreach( $_POST as $stuff ) { if( is_array( $stuff ) ) { foreach( $stuff as $thing ) { echo $thing . "<br />"; } } else { echo $stuff ."<br />"; } } ?> </html> 

Несколько других заимствованных и слегка измененных идей, которые могут помочь в обработке данных, отправленных вашей формой из: mysql_escape_string всего массива сообщений?

На этом экране будет отображаться только то, что вы установили, и его имя и значение:

  foreach(array_keys($_POST) as $key){ echo htmlspecialchars($key) . " " . htmlspecialchars($_POST[$key]) . "<br />";} 

И этот должен убежать от него (вам нужно войти в свой sql-сеанс):

  foreach(array_keys($_POST) as $key){ $_POST[$key] = mysqli_real_escape_string($_POST[$key]); echo htmlspecialchars($key) . " " . htmlspecialchars($_POST[$key]);} 

Чтобы собрать результаты с помощью флажков от A до Z в строку, где они были проверены, это может сработать и имеет то преимущество, что вы не помещаете ничего из представленного значения в свою строку.

  $abc = ''; $abc_cnt = 'A'; while( $abc_cnt1 < 26 ){ if(isset($_POST[$abc_cnt])){ $abc = $abc . $abc_cnt; } $abc_cnt++; $abc_cnt1++; } echo $abc; // your result string for Sezzioni 

То же самое относится к вашим другим переменным, которые вы хотите поместить в строку – например, если все флажки «Sesso» будут нажаты, вы получите «MFG» или у вас могут быть M и G или F и G.

  if (isset($_POST['Maschio'])) $sesso = $sesso . 'M'; if (isset($_POST['Femmina'])) $sesso = $sesso . 'F'; if (isset($_POST['Azienda'])) $sesso = $sesso . 'G';