troubleshooting Question

Get values from custom form

Avatar of peter-cooper
peter-cooper asked on
PHPAJAXjQuery
10 Comments1 Solution287 ViewsLast Modified:
I am in a bit of a dilemma and not sure of the best way to proceed.  The code I am using queries php using ajax and returns the data successfully. However, I have a form that is triggered from a click event and what I need to do is capture the values from that form and append to the data that I already have so I can send to php for db processing.

Brief scenario:

If the data == 'New Intake' this triggers the form and when the action button is pressed, capture the form values to join with the existing data and send to php for processing.

I have looked at this for some time now and cannot see how to do this, hence the post. I would be grateful if someone help me find a solution to this. I am using jtable to display and process the data and I have only posted the relevant part of the code because it is quite long. Many thanks

jQuery/Ajax

sendbtn: {
  title: 'Action',
  width: '1%',
  sorting: false,
  edit: false,
  display: function(data) {
    var $image = $('<span><img src="css/themes/lightcolor/icon-action.png" style="display: block; margin: 0 auto; cursor:pointer;"/></span>');

    $image.click(function() {
      var $selectedRows = $('#setActionsScheduleShow').jtable('selectedRows');
      $selectedRows.each(function() {
        var record = $(this).data('record');
        var id = record.id;
        var service = record.service;
        var dept = record.department;
        var activity = record.activity;
        var company = record.company;
        var user = record.user;
        var item = record.item;
        var address = record.address;
        //alert(id + ' ' + service + ' ' + activity + ' '  + dept + ' ' + company); 

        var data = {
          id: id,
          service: service,
          company: company,
          dept: dept,
          activity: activity,
          user: user,
          item: item,
          address: address
        }
        $.ajax({
          type: "POST",
          url: "boxActionTemp.php",
          data: data,
          success: function(data) {
            //alert(data);
            if (data == 'error') {
              notif({
                msg: 'There was an error actioning your request.<br />' + 'Please inform the system administrator.' + 'Thank you.',
                type: "default",
                position: "center",
                width: 490,
                height: 75,
                multiline: true,
                timeout: 6000,
                autohide: true,
                opacity: 0.9,
                fade: 10,
              });
            } else if (data == 'New Intake') {
              //alert ('new Intake');
              $('#rackInput').show();
              var $dialog = $('#rackIntakeForm');
              $dialog.dialog({
                autoOpen: true,
                modal: true,
                title: 'Please input your rack details',
                width: 280,
                height: 280,
                draggable: true,
                resizable: false,
                close: function(event, ui) {
                    $("#rackIntakeForm").validate().resetForm();
                    //$( this ).dialog( "close" );
                    $("#rackIntakeForm").get(0).reset();
                    $("#rack, #column, #row, #bay").val(' ');
                  }
                  // buttons: {
                  //Close: function() {
                  //$( this ).dialog( "close" );
                  //$("#frmreport").get(0).reset();
                  // }
                  // }

              });

            } else {
              notif({
                msg: 'You have successfully actioned your request for ' + activity + '<br /><br /><b><font color="black">' + data + '</b></font>' + '<br /><br />This update was successfully added to the database.<br /><br />Thank you.',
                type: "defaultSuccess",
                position: "center",
                width: 490,
                height: 75,
                multiline: true,
                timeout: 6000,
                autohide: true,
                opacity: 0.9,
                fade: 10,
              });

              $('#setActionsScheduleShow').jtable('load');
            }
          }
        });
      });
    });
    return $image;
  }
}

boxActionTemp.php

<?php
session_start();

$connect = mysql_connect("localhost", "root", "") or die(mysql_error());
//If this Fails at least place it in a JSON so you can see IT
$db = mysql_select_db("sample");

// test vars from jquery form
$id          = mysql_real_escape_string($_POST['id']);
$company     = mysql_real_escape_string($_POST['company']);
$user        = mysql_real_escape_string($_POST['user']);
$activity    = mysql_real_escape_string($_POST['activity']);
$service     = mysql_real_escape_string($_POST['service']);
$item        = mysql_real_escape_string($_POST['item']);
$address     = mysql_real_escape_string($_POST['address']);
$newdate     = $date[2] . '-' . $date[1] . '-' . $date[0];
$Displaydate = $date[0] . '-' . $date[1] . '-' . $date[2];
$qty         = mysql_real_escape_string($_POST['rcyqty']); // never used */
$authorised  = mysql_real_escape_string($_SESSION['kt_name_usr']);
$dept        = mysql_real_escape_string($_POST['dept']);

if ($id == "")
{
    echo 'error';
}
else if ($activity == 'New Intake')
{
    echo 'New Intake';
}
else
{
    $output = 'Company: ' . ' ' . $company;
    $output .= '<br />';
    $output .= 'Address: ' . ' ' . $address;
    $output .= '<br />';
    $output .= 'User: ' . ' ' . $user;
    $output .= '<br />';
    $output .= 'Activity: ' . ' ' . $activity;
    $output .= '<br />';
    $output .= 'Service: ' . ' ' . $service;
    $output .= '<br />';
    $output .= 'Item: ' . ' ' . $item;
    echo ($output);
    
    /* $sql = "INSERT INTO `act` (service, activity, department, company, address, user,  date, quantity, type, new)";
    $sql .= "VALUES ('$service', '$activity', '$dept', '$company', '$address', '$requested', NOW(), '$qty', '$type', 1)";
    $result = mysql_query($sql) or die ('{"opp":"error","box":"' . mysql_error() . '"}'); */
}
?>

html

<form id="rackIntakeForm" method="post">
  <table id="rackTable" border="0">
    <tr>
      <td>Rack:</td>
      <td></td>
      <td><input id="rack" name="rack"></td>
    </tr>
    <tr>
      <td>Column:</td>
      <td></td>
      <td><input id="column" name="column"></td>
    </tr>
    <tr>
      <td>Row:</td>
      <td></td>
      <td><input id="row" name="row"></td>
    </tr>
    <tr>
      <td>Bay:</td>
      <td></td>
      <td><input id="bay" name="bay"></td>
    </tr>
    <tr>
      <td>Size:</td>
      <td></td>
      <td>
        <select id="boxSelect" name="size">
          <option value="" selected> Choose box size </option>
          <option value="S"> Standard </option>
          <option value="P"> Printout </option>
          <option value="O"> Other </option>
          <option value="T"> Transfer </option>
        </select>
      </td>
      <br />
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td><br /><input class="addprofilesubmit" type="submit" name="submit" value="Action"></td>
    </tr>
  </table>
</form>
ASKER CERTIFIED SOLUTION
Slick812

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 10 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 10 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros