Я проверил все другие «дублирующие» вопросы по этому вопросу. Но поразили стену с точки зрения поиска того, что не так с моим сценарием. Может быть что-то очень простое. Но у меня кончился пар, который нашел ошибку. Так что я здесь.проблема с получением глобальной переменной javascript в функции
Я пытаюсь создать список продуктов на веб-странице с ссылкой «Запросить» для каждого продукта. При нажатии на ссылку отображается идентификатор продукта и появляется краткая форма для добавления контактной информации пользователя. Когда пользователь отправляет форму, запрашиваемые сведения о продукте и контактные данные пользователя отправляются администратору.
Я делаю все это с помощью JS с вызовом Ajax Post в файл PHP.
Все хорошо принимает между этими двумя функциями
- Когда ссылка «ЗАПРАШИВАЕТ» нажата и
- При отправке формы кнопка нажата.
Моя проблема заключается в том, что я не могу передать переменную 'item' имени товара в функцию отправки. В функции отправки я получаю «item» undefined.
Я не слишком хорош в JS. Я знаю, что делаю некоторые процедурные ошибки. Было бы здорово, если бы кто-нибудь мог указать, что я делаю неправильно.
Мои коды;
HTML
<div class="prodlist"><div class="productimg"><h4 id="itemcf">Cupellation Furnace</h4><img src="images/cupellation-furnace.png" alt="cupellation furnace"></div><div class="prodtxt"> This is the product description area. This area will contain details and specifications</div><div id="inquirecf"><span>Inquire</span></div><div id="inqrescf"></div></div>
<div class="prodlist"><div class="productimg"><h4 id="itemmf">Melting Furnace</h4><img src="images/furnace-2kg.png" alt="Melting furnace"></div><div class="prodtxt"> This is the product description area. This area will contain details and specifications</div><div id="inquiremf"><span>Inquire</span></div><div id="inqresmf"></div></div>
<div id="inqform">
<span id="inqclose">Close</span>
<div style="clear:both"></div>
<div id="inqresgen"></div>
<form id="forminq" method="post">
Name : <input type="text" id="inqname" require><br>
<div style="clear:both"></div>
phone : <input type="number" id="inqphone" require><br>
<div style="clear:both"></div>
Email : <input type="email" id="inqemail" require><br>
<div style="clear:both"></div>
Location : <input type="text" id="inqloc" require><br>
<div style="clear:both"></div>
Message : <textarea cols="30" rows="10" id="inqmsg" require></textarea>
<div style="clear:both"></div>
<input type="submit" onClick="sendInq();" value="Send">
<div style="clear:both"></div>
</form>
<div style="clear:both"></div>
</div>
JS
$(document).ready(function(){
var item;
$('#inqclose').click(function(){ $('#inqform').fadeOut('fast');});
$('#inquirecf,#inquiremf').click(function(){
var id = $(this).attr('id');
//alert(id);
if(id=="inquirecf"){alert("inquirecf"); item="Cupellation Furnace";}
else if(id=="inquiremf"){alert("inquiremf");item="Melting Furnace";}
else{alert("No Choices");}
$('#inqform').slideToggle('fast');
});
});
function sendInq(item){
var itemv=item;
event.preventDefault();
var inqname=$('#inqname').val();
var inqphone=$('#inqphone').val();
var inqemail=$('#inqemail').val();
var inqloc=$('#inqloc').val();
var inqmsg=$('#inqmsg').val();
alert("Item : "+ itemv);
$.post("inquire.php",
{
itemname: itemv,
inqname: inqname,
inqphone: inqphone,
inqemail: inqemail,
inqloc: inqloc,
inqmsg: inqmsg
},
function(data,status){
// alert("Data: " + data + "\nStatus: " + status);
$('#inqresgen').html(data);
///$('#inqres2').html("<h4>Inquiry Sent</h4>");
$('#forminq').fadeOut('fast');
});
}
Вы не передаете аргумент 'onClick =" sendInq(); "' – Satpal
Он присутствует в типе ввода submit в html – user3526204