Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3
  1. #1
    New Coder
    Join Date
    Oct 2009
    Posts
    68
    Thanks
    0
    Thanked 0 Times in 0 Posts

    having probem inserting data into db table

    hi

    i have a table with following columns in it
    Code:
    candidate_id, degree, cgpa, institute
    and i have a dynamic form with some javascript in it. the problem in php script i think not in js. this form has two buttons when "need more fields" button and "submit" button. when the user clicks more fields button then three more fields appears. when user fills this form and press submit it it goes to db and insert there. the problem is when user fills as many fields as he wants but only first three fields enters into the db. and remaining of them does not enter. you can pick out what i am doing wrong in the following code.

    Code:
    <script type="text/javascript">
    var counter = 0;
    //var counter = 0;
    //Start a counter. Yes, at 0
    function add_phone() {
        counter++;
    //I find it easier to start the incrementing of the counter here.
        var newFields = document.getElementById('add_phone').cloneNode(true);
        newFields.id = '';
        newFields.style.display = 'block';
        var newField = newFields.childNodes;
        for (var i=0;i<newField.length;i++) {
            var theName = newField[i].name
            if (theName)
                    newField[i].name = theName + counter;
    //This will change the 'name' field by adding an auto incrementing number at the end. This is important.
            }
            var insertHere = document.getElementById('add_phone');
    //Inside the getElementById brackets is the name of the div class you will use.
            insertHere.parentNode.insertBefore(newFields,insertHere);
    }
    
    </script>
    
    
    <form name="add_a_phone" action="qualificationProcess.php" method="post" enctype="multipart/form-data">
    <fieldset>
    <div id="phone">
        Degree:<input type="text" name="degree_0" value="" /><br>
        cgpa:<input type="text" name="cgpa_0" value="" /><br>
        institute:<input type="text" name="institute_0" value="" /><br>
    </div>
    <div id="add_phone" style="display: none;">
        Degree:<input type="text" name="degree_" value="" /><br>
        cgpa:<input type="text" name="cgpa_" value="" /><br>
        institute:<input type="text" name="institute_" value="" /><br>
    </div>
    <input type="hidden" name="lastId" value="<?php echo $lastId; ?>"/>
    <input type="button" id="add_phone()" onclick="add_phone()" value="Give me more fields!" /><br>
    <input type="submit" name="submit" value="submit" />
    </fieldset>
    </form>
    
    
    <?php
    	
    	//echo $lastId;
    
        if(isset($_POST['submit']))
    //This checks to make sure submit was clicked
        {
            echo "You clicked submit!<br>";
            echo "Here is your data<br>";
            echo "<br>";
            if ($_POST['cgpa_0'])
    //This checks that the proper field has data
            {
                    $continue = FALSE;
                    $i = 0;
                    while ($continue == FALSE)
                    {
                        if (isset($_POST['degree_'.$i]))
    //This looks for an entry after 0 and increments
                        {
                        echo $_POST['degree_'.$i] . " = " . $_POST['cgpa_'.$i] . "<br>";
    //Echoing the data
    					//$id = $_POST['id_'.$i];
    					$lastId = $_POST['lastId'];
                        $degree = $_POST['degree_'.$i];
                        $cgpa = $_POST['cgpa_'.$i];
    					$institute = $_POST['institute_'.$i];
    					
    					
    					$db = mysql_connect("localhost");
    					mysql_select_db("jobolicious", $db);
                        $query = "INSERT INTO qualification (candidate_id, degree, cgpa, institute) VALUES ('$lastId', '$degree', '$cgpa', '$institute')";
                        $result = mysql_query($query);
    //The four lines above is the example on how the data would be put into a MySQL database. It's not used here
                    }
                    else
                    {
                        $continue = TRUE;
                    }
                    $i++;
                }
            }
        }
    
    ?>
    and one more thing is in the candidate_id column only one id will be enter. i mean when one user come and fills as many fields as he wants but for those fields this column should have only one id. and also this id is taken from other form through hidden input.

  • #2
    Senior Coder tomws's Avatar
    Join Date
    Nov 2007
    Location
    Arkansas
    Posts
    2,644
    Thanks
    29
    Thanked 330 Times in 326 Posts
    Are you sure that the new input have the correct names after adding a new set? Check the source code (easy with Firebug) after clicking the "more fields" button.
    Are you a Help Vampire?

  • #3
    New Coder
    Join Date
    Oct 2009
    Posts
    68
    Thanks
    0
    Thanked 0 Times in 0 Posts
    i think i know what the problem is. the problem here is with id field. when i enter different id for other set of fields(after clicking give me more buttons) then it does insert that data in db but thats what i dont want the id for one user will have be same.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •