Polo
Polo

Reputation: 159

Form not sending data via POST

I have this code (it's an include), but the thing is that when I send the form the $_POST data is not being sent. Im checking for $_POST data like this

if(isset($_POST['ft_upload']) && $_POST['ft_upload'] == 1){
    //$usuario -> uploadFirstTime2($db);
    echo "ok";
}   

and the code for the form is

<div class="ft_userImage" style="background: url(<?php echo $usuario -> getProfileImage(); ?>);"></div>


<p class="ft_step2_continue"><?=$TEXT_BUTTONS['continue'];?></p>

<form action="" method="POST" class="ft_step2_form_upload">
    <input type="hidden" name="ft_upload" value="1" />
</form>

<script>
    $("p.ft_step2_continue").click(function(){
        $(".ft_step2_form_upload").submit();
    });
</script>

Upvotes: 0

Views: 5901

Answers (4)

Fabio Branco da Silva
Fabio Branco da Silva

Reputation: 15

I think you want transfer a file to server??? if yes:

<form method="POST" action="this-file-name.php" enctype="multiform/form-data">
 Your Photo:
 <input type="file" name="filet" required="required">
 <input type="submit" value="Send Photo">
</form>

<?php
 if(isset($_FILES['filet'])) {
  $dir = './my_dir_name/';
  $file_name = $_FILES['filet']['name'];
  $doit = @move_uploaded_file($_FILES['filet']['tmp_name'],$dir.$file_name);
  if($doit) {
   echo 'File '.$file_name.' uploaded';
  }
 }
?>

Upvotes: 0

Ibram Marzouk
Ibram Marzouk

Reputation: 5

You need to specify the action attribute.

<form action="check.php" method="POST" class="ft_step2_form_upload">

Upvotes: 0

Kinshuk Lahiri
Kinshuk Lahiri

Reputation: 1500

Here check this:

<?php var_dump($_POST); ?>

<html>
 <head>
  <title></title>
 </head>
<body>
 <form action="" method="POST" class="ft_step2_form_upload">
  <input type="hidden" name="ft_upload" value="1" />
 </form>
 <script   src="https://code.jquery.com/jquery-3.1.1.min.js"    integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="   crossorigin="anonymous"></script>
<script>
  $("p.ft_step2_continue").click(function(){
     $(".ft_step2_form_upload").submit();
  });
</script>
</body>
</html>

Ok so i did this. Saved it in a php file. And then triggered the submit and it outputs:

array(1) { ["ft_upload"]=> string(1) "1" }

Your php code should be in the same file where the form html is written because your action attribute is empty.

Upvotes: 0

asissuthar
asissuthar

Reputation: 2256

check.php

<?php
   if(isset($_POST['ft_upload']) && $_POST['ft_upload'] == 1) {
      echo "ok";
   }   
?>

index.html

<!DOCTYPE html>
<html>
<head>
    <title>form</title>
</head>
<body>
<form action="check.php" method="POST" class="ft_step2_form_upload">
    <input type="hidden" name="ft_upload" value="1" />
</form>
    <button id="ft_step2_continue">SEND</button>
    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
    $("#ft_step2_continue").click(function(){
        $(".ft_step2_form_upload").submit();
    });
</script>
</body>
</html>

it works fine.

i think, you just forgot action="check.php" in your form tag.

Upvotes: 1

Related Questions