2017-02-17 2 views
1

Я создал динамическое текстовое поле с помощью javascript. здесь код JavaScript:Доступ к динамически созданным элементам с помощью javascript в PHP-коде

$(document).on('click','#AddHaContactNumberButton',function(e){ 
e.preventDefault(); 
var outerDiv = document.getElementById("HaContactDiv"); 
var textboxDiv = document.createElement('div'); 
textboxDiv.className = 'inputs'; 
var input = document.createElement('input'); 
input.type = "text"; 
input.setAttribute('name','numbersshowbox[number]'); 
textboxDiv.appendChild(input); 
numberinfoDiv.appendChild(textboxDiv); 
outerDiv.appendChild(numberinfoDiv); 
}); 

Теперь я хочу, чтобы получить доступ к этим значения TextBox в PHP код на кнопку отправить, нажмите, а затем сохранить его в базу данных. здесь HTML код:

<FORM ID="AddFORM" NAME="AddFORM" ACTION="./admin.php" METHOD=POST><br> 
    <div class="clear"> 
    <INPUT CLASS="button" TYPE=SUBMIT NAME="AddHaContactNumberButton" VALUE="Add" ID="AddHaContactNumberButton"> 
    </div> 
    <div class="left-text-align relative-position"> 
    <INPUT CLASS="button" TYPE=SUBMIT NAME="AddHaContactButton" VALUE="Save" ID="AddHaContactButton"> 
    </div> 
    </FORM> 

мой PHP код:

if ($AddHaContactButton == "Save") { 
    $test = $_REQUEST['numbersshowbox[number]']; 
} 

проблема $ тест является недействительным. Я искал и обнаружил, что, поскольку javascript - клиентская сторона, а php - серверная, я не могу получить значение в php, если я не использую запрос ajax. Так что я написал Ajax запрос, как показано ниже:

$(document).on('click','#AddHaContactButton',function(e){ 
e.preventDefault(); 
currentForm = document.getElementById("AddFORM"); 
var numberarray= currentForm.elements['numbersshowbox[number]']; 
if (numberarray != null) { 
    var arry = []; 
    for (var i = 0; i < typearray.length; i++) { 
     arry.push([typearray[i].value, numberarray[i].value]); 
    $.ajax({ 
     url: 'savePhoneNumbersInDatabase.php', 
     type: 'GET', 
     data: { numbersArray: arry}, 
     success: function(data){ 
      currentForm.submit(); 
     } 
    }); 
} 
}); 

Сейчас он работает нормально, но проблема в том, что я хочу, чтобы сохранить данные в базе данных в постбэка. Я хочу, чтобы страница была обновлена ​​после нажатия кнопки «Отправить».

ответ

1

Если ваша цель состоит в том, чтобы просто обновить страницу после того, как событие щелчка и $ .ajax() вызова, добавьте следующие строки в конец обратного вызова успеха в Ajax варианты:

location.reload(); 

Помимо просто отвечая на ваши вопрос, я считаю, было бы лучше всего приложить вызов ajax к событию отправки формы, а не к событию нажатия кнопки. Если нет веской причины, вы уже этого не делаете. Что-то вроде:

$('#AddFORM').submit(<submit handler>) 
+0

Благодарим за внимание. Позвольте мне уточнить мою проблему. У меня есть форма, которая получает контактную информацию, такую ​​как адрес имени и ... В этой форме у меня есть кнопка для добавления контактных номеров. нажатием этой кнопки появится несколько текстовых полей. В моем php-коде я могу получить адрес имени и ... как переменную _POST, и я сохраняю их в базе данных. Но я не знаю, что мне делать с этими номерами контактов. Я написал свой запрос ajax, но сначала мне нужно сохранить имя и адрес в базе данных, а затем сохранить номера контактов в другую таблицу на основе идентификатора контакта. – Amir