Мой код создает динамический ввод текста через jquery и отправляет данные в php (и после моего db). Создание прекрасно, но PHP не получает текст ввода. Я пытался с $.post() и $.ajax(), но, вероятно, я использовал эти методы плохо.
Входы:
...
<script>
var i=0;
$( "#btnTag" ).on( "click", function() {
$( this ).after( '<p> Tipo Tag: <select name="tipoTag'+i+'"><option value="ricerca">Ricerca</option><option value="classificazione">Classificazione</option> <option value="processo">Processo</option><option value="organizzative_interne">Organnizzative Interne</option></select>Nome Tag:<input type="text" id="txtTag'+i+'" name="txtTag'+i+'"/></td><td><input type="reset" value="Rimuovi" id="btnDel" name="btnDel"/></p> ' );
$("#btnDel").on("click",function() {
$(this).parents('p').remove(); i--;});
i++;
});
</script>
...
В файле php:
//connection...
$count=0;
while(true){
if(isset($_POST['"txtTag'.$count+"'"])){
$nomeTag=$_POST["'txtTag".$count."'"];
$tipoTag=$_POST['"tipoTag'.$count.'"'];
$count++;
continue;
}else break;
}
Ошибка: Неопределенный индекс для txtTag0 и tipoTag0
Вы пытались с помощью JQuery Documentation о функциях Ajax JqueryApi
попробуй это:
//connection...
$count=0;
while(true){
if(isset($_POST['txtTag'.$count])){
$nomeTag=$_POST['txtTag'.$count];
$tipoTag=$_POST['tipoTag'.$count];
$count++;
continue;
}else{
break;
}
}
У вас слишком много котировок в ваших индексах PHP $ _POST. Это должно быть так
$_POST['txtTag' . $count]
Лучше использовать массив таких элементов, как,
<select name="tipoTag[]">...<input type="text" name="txtTag[]"/>
И в PHP это нравится,
if(isset($_POST['tipoTag']) and !empty($_POST['tipoTag'])) {
// no need to make an infinte loop
foreach($_POST['tipoTag'] as $key => $tipotag){
echo $txttag=isset($_POST['txtTag'][$key]) ? $_POST['txtTag'][$key] : '';
echo $tipotag;
}
}
Также не используйте +
для конкатенации в PHP