<form role="form" method="post" action="test.php"> <label for="contact">Mobile No:</label><br> <input type="tel" class="form-control" name="contact" title="Mobile number should not contain alphabets. Maxlength 10" placeholder="Enter your phone no" maxlength="15" required id='contact_no'> <br><br> <button type="submit" class="btn btn-success" name="submit" id="submit">Submit</button> <button type="reset" class="btn btn-default" id='reset'>Reset</button> </form> Ajax and Javascript Code script type="text/javascript"> $(document).ready(function(){ $("#submit").click(function(){ var dialcode = $(".country-list .active").data().dialCode; var contact = $("#contact_no").val().replace(" ",""); var countrycode = $('.country-list .active').data().countryCode; var cn; var cc; var dc; $.ajax({ url: "test.php", type: "POST", data: {'cc' : contact}, success: function(data) { alert("success"); } }); }); }); </script>
Переменные показывают значения, если они отображаются предупреждающим сообщением, но не передаются на страницу test.php. Он показывает неопределенную ошибку индекса при следующем утверждении
test.php выглядит следующим образом
<?php if(isset($_POST['submit'])){ $contact = $_POST['cc']; //it shows the error here } echo $contact;
Я упомянул многие веб-сайты, которые показывают одно и то же. Это доцент для меня. Я думаю, что синтаксис ajax правильный и пробовал все возможности, но все же доцентную работу. Пожалуйста помоги
Вы отправляете {cc: contact}
, но вы проверяете $_POST['submit']
который не отправляется. Обратный вызов также не останавливает событие, поэтому вы можете захотеть return false
(останавливает по умолчанию и распространение). Что-то вроде этого должно сделать трюк:
$('#submit').on('click', function() { //do stuff $.ajax({ data: {cc: contact}, method: 'post', success: function() { //handle response here } }); return false; });
Затем в PHP:
if (isset($_POST['cc'])) { //ajax request with cc data }
Также не так:
$("#contact_no").val().replace(" ","");
Будет заменено только одно пространство, а не все, для этого вам нужно будет использовать регулярное выражение с флагом g
(для глобального):
$("#contact_no").val().replace(/\s+/g,"");
Вы используете ajax
для form submit
и вы используете $_POST['submit']
чтобы проверить, будет ли это $_POST['cc']
test.php
<?php if(isset($_POST['cc'])){// change submit to cc $contact = $_POST['cc'];//it shows the error here } echo $contact;