@sharkes1337

Отправка формы jQuery + AJAX + PHP?

Форма никак не хочет отправляться. Перепробовал всё. Может ошибку где не вижу?
<?php else: 
				$con = mysqli_connect('localhost','root','','test');
				$sql = "SELECT `id`,`fname` FROM `faculty`";
				$result = mysqli_query($con, $sql)
			?>
			<p>Привет <?=$_COOKIE['user']?>. Чтобы выйти нажмите  <a href="exit.php">здесь</a></p>
			<form action="" method="post">
				<p>
				Выберите факультет
				</p>
				<select name="fid" id="fid">
				<option value="0">Выбор</option>
				<?php while($object = mysqli_fetch_object($result)):?>
				<option value ="<?=$object->id?>"><?=$object->fname?></option>
				<?php endwhile;?>
			   </select>
			</form>
			<div id="res">
			</div>
				<div class="addstudent">
					<form action="" method="post" >
					<div>
					<label for="sname">Введите имя студента:</label>
					<input type="text" id="sname" name="sname">
					</input>
					</div>
					<div class="auth">
						<div class="btns">
							<input class="btn btn-access btn-add" type="submit" value="Добавить" id="namestudent">
						</div>
					</div>
					</form>
				</div>

$(function(){
        $('#fid').change(function(){
            var val = $(this).val(); //значение option
            $.ajax({
                type:'post',
                url:'select_all_php.php',//обработчик php
                data:'value='+val,//передаем значение option. на сервере будет доступно $_POST['value'}
                success:function(result){// получаем ответ с сервера
                    $('#res').html(result);//выводим на стнанице
                }
                
            })
            console.log($(this).val());
        })
    })

    
$(document ).ready(function() {
    $("#namestudent").click(function(){
        $.ajax({
            type: 'POST',
            url: 'select_all_php.php',
            dataType: 'text',
            data: {
                name:$('#sname').val(),
                _csrf: '<?=Yii::$app->request->getCsrfToken()?>'
            }
        });
        return false; 
    });
});


<?php
//echo "Выбран option с значением - ".$_POST['value'];
			$sqls="SELECT * FROM student";
			$con = mysqli_connect('localhost','root','','test');
			$res = mysqli_query($con, $sqls);
?>
<div class="info">
	<?php 
		if($res->num_rows>0){
			while($row=$res->fetch_assoc()){
				if($_POST['value'] == $row["fid"]){
				echo "<br> Студент:".'   '. $row["sname"].'   '. $row["birthday"];
			}
			}
		}
		//$con->close();
	?>
</div>
<?php
	if($_POST['value'] == '0'){
?>
<style type="text/css">
#res{
display: none;
}
</style>
<?php } 

if(isset($_POST['name'])){
	$birthday='1989';
	$name =$_POST['sname'];
	$fid = $_POST['value'];
	$mysql= new mysqli('localhost','ijdbuser','a9b8e7q6555','workhome');
	$mysql->query("INSERT INTO student (sname,birthday,fid) VALUES('$sname','$birthday','$fid')");
	$mysql->close();
}
?>
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
revenger
@revenger
49.5
У вас тут каша какая-то.
Вот как отправляется форма:
$.post('/ajax/form.php', $('form#orderform').serialize());

Прикрутите это как вам советуют при сабмите.
Со стороны PHP ловите так:
parse_str($_REQUEST,$fields);
Вот несколько примеров для размышления
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Если форма не отправляется - смотрите консоль в WebDev браузера. А вот если и там ошибок не будет...

И ещё, 'select_all_php.php' какой-то неаккуратненький!
<?php
if (!empty($_POST['value'])) {
  $con = mysqli_connect('localhost','root','','test') or die(mysqli_connect_error());
//echo "Выбран option с значением - ".$_POST['value'];
  $sqls = "SELECT * FROM `student` WHERE `fid`='".mysqli_real_escape_string($con, $_POST['value'])."'";
  $res = mysqli_query($con, $sqls) or die(mysqli_error($con));
?>
<div class="info">
<?php 
  if(!empty($res) AND $res->num_rows) {
    $row=$res->fetch_assoc();
    echo "<br> Студент:".'   '. $row["sname"].'   '. $row["birthday"];
  }
  mysqli_close($con);
?>
</div>
<?php
}
if($_POST['value'] == '0'){
?>
<style type="text/css">
#res{
display: none;
}
</style>
<?php
}

if(!empty($_POST['name'])) {
  $birthday='1989';
  $name =$_POST['sname'];
  $fid = $_POST['value'];
  $con = new mysqli('localhost','ijdbuser','a9b8e7q6555','workhome') or die(mysqli_connect_error());
  mysqli_query($con, "INSERT INTO student (sname,birthday,fid) VALUES('".mysqli_real_escape_string($con, $sname)."','".mysqli_real_escape_string($con, $birthday)."','".mysqli_real_escape_string($con, $fid)."')") or die(mysqi_error($con));
  mysqli_close($con);
}
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы