innerHTML显示为空白,即使元素的值为

时间:2017-09-08 22:17:00

标签: javascript php

我有一个名为function getContactsToForm()的函数; 此函数在名为results的div行上运行,该行保存来自我的sql的值。在单击时,每行应该加载此函数从li[0]获取数据并将其传递给函数的其余部分。 我似乎正在让它工作正常,但是Li在我的控制台日志中显示为空,即使表已填充。我认为这意味着排序是错误的。 以前我有一个工作样本,它包含表行的所有内容。注释掉的原始函数将使用Tr标记并获取值。该函数在getContacts()函数中被调用,并且一切运行良好,LI我遇到了麻烦。有什么想法吗?

functions.js



// JavaScript Document
//formoverlay

function formSubmit() {
  $.ajax({
    type: 'POST',
    url: 'contactsinsert.php',
    data: $('#frmBox').serialize(),
    success: function(response) {
      $('#success').html(response);
    }
  });
  var form = document.getElementById('frmBox').reset();
  window.location.reload();
  return false;
}

$(document).ready(function() {
  $('#srchbtn').click(function start() {
    getContacts();
  });
});

function getContacts() {
  var txtsearch = $('#txtsearch').val();
  $.ajax({
    url: 'contactstable.php',
    type: "POST",
    //dataType: "json",
    data: ({
      txtsearch: txtsearch
    }),
    success: function(response) {
      $('#displayContacts').html(response);
      //addRowHandlers();
      //getContactsToForm();
    }
  });

}
window.onload = getContacts();


/*function addRowHandlers() {
	console.log("hi");
        var table = document.getElementById("resultstable");
        var rows = table.getElementsByTagName("li");
        console.log(rows[0]);
        for (i = 0; i < rows.length; i++) {
         var currentRow = table.rows[i];
         console.log(currentRow);         
         var createClickHandler = function(row) {
            return function() { 
            	*/
function getContactsToForm() {
  var table = document.getElementById("resultstable");
  var rows = table.getElementsByTagName("ul")['results'];
  console.log(rows);
  var lis = table.getElementsByTagName('li')[0];

  console.log(lis);


  var id = lis.innerHTML;
  console.log(id);
  //alert("id:" +id);
  document.getElementById("id").value = id;



  $.ajax({
    url: "inputtest.php",
    success: function(result) {
      var frm = document.getElementById("frmBox2");
      var ID = document.getElementById("id").value;

      if (/\S/.test(ID)) {
        ajax_request(this.action, {
          "action": "fetch",
          "ID": ID
        }, process_response);
      } else {
        alert("No ID supplied");
      }

      function ajax_request(url, data, callback) {
        var i, parts, xhr;
        // if data is an object, unroll as HTTP post data (a=1&b=2&c=3 etc.)
        if (typeof data == "object") {
          parts = [];
          for (i in data) {
            parts.push(encodeURIComponent(i) + '=' + encodeURIComponent(data[i]));
          }
          data = parts.join("&");
        }
        // create an XML HTTP Request object
        xhr = new XMLHttpRequest();
        if (xhr) {
          // set a handler for changes in ready state
          xhr.onreadystatechange = function() {
            if (xhr.readyState == 4) {
              // check for HTTP status of OK
              if (xhr.status == 200) {
                try {
                  callback(JSON.parse(xhr.responseText));
                } catch (e) {
                  console.log(xhr.responseText); // for debug
                  alert("AJAX request incomplete:\n" + e.toString());
                }
              } else {
                alert("AJAX request failed: " + xhr.status);
              }
            }
          };
          // open connection and send payload
          xhr.open("GET", "inputtest.php" + "?" + data, true);
          xhr.send(null);
        }
      }
      /**
       * process the response, populating the form fields from the JSON data
       * @param {Object} response the JSON data parsed into an object
       */
      function process_response(response) {
        var frm = document.getElementById("frmBox2");
        var i;
        console.dir(response); // for debug
        for (i in response) {
          if (i in frm.elements) {
            frm.elements[i].value = response[i];
          }
        }
      }


    }
  });

};


//	currentRow.onclick = createClickHandler(currentRow);
//							}
//					  }
//window.onload = addRowHandlers();



function openNav() {
  document.getElementById("myNav").style.width = "100%";
}

function closeNav() {
  document.getElementById("myNav").style.width = "0%";
  window.location.reload();

}


function openCon() {
  document.getElementById("conNav").style.width = "100%";
}

function closeCon() {
  document.getElementById("conNav").style.width = "0%";
  var form = document.getElementById('frmBox').reset();

}

function enablebuttons() {
  document.getElementById("insert").disabled = false;


}
&#13;
contactstable.php (calls the mysql and receives contacts)
<!doctype html>
<html>

<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
<?php
include_once "iud.php";

$arrayval = array();
$search=$_POST['txtsearch'];
$search1 = explode(" ", $search);
array_push($arrayval, $search1);

foreach ($arrayval as $val){
    $orIndex = checkOr($val);
    if(empty($orIndex)){
        $resultstable = getResults($val);
        $resultstable1 = buildTable($resultstable);
        print($resultstable1);
    }else{
        print"there is an or here";
        $resultstable = getResults($orIndex);

        $resultstable1 = buildTable($resultstable);
        print($resultstable1);
    }
}

buildTable($resultstable);
/*if (empty($orIndex)){
  print "no or";
  $resultstable = getResults($val);
  $resultstable1 = buildTable($resultstable);
  print $resultstable1; 

  function getResults($array){
  include_once "iud.php";
  $db = connectDatabase();

  $totalResults = array();

  $length = count($array);
  for ($i = 0; $i < $length; $i++){
  $outputDisplay = "";	 
  $myrowcount = 0;
  $sql_statement  = "SELECT id, firstname, lastname, pcat, position, state ";
  //, congroup, cattype, company, position, email, website, phone, mphone, wphone, fax, add1, add2, city, state, zip, country, reference, entrydate, enteredby, notes ";
  $sql_statement .= "FROM contacts ";
  $sql_statement .= "WHERE (firstname LIKE '%$array[$i]%' or lastname LIKE '%$array[$i]%')"; 
  $sql_statement .= "ORDER BY lastname, firstname";
  $sqlResults = selectResults($db, $sql_statement);
  $error_or_rows = $sqlResults[0];

  if (substr($error_or_rows, 0 , 5) == 'ERROR')
  {
  $outputDisplay .= "<br />Error on DB";
  $outputDisplay .= $error_or_rows;
  } else {

  $totalResults = array_merge($totalResults, $sqlResults);
  //$totalResults = array_map("unserialize", array_unique(array_map("serialize", $totalResults)));
  $arraySize = $error_or_rows;
  }
  }
  //return $totalResults;
  //print $arraySize;
  //print_r($error_or_rows);
  return $totalResults;
  }

  function buildTable($totalResults){
  include_once "iud.php";
  $outputDisplay = "";
  //$outputDisplay .= '<table id="resultstable" style="overflow-x:auto;">';
  //$outputDisplay .= '<tr><th align="left">ID</th><th align="left" width="30%">First Name</th><th align="left" width="30%">Last Name</th><th align="left" width="30%">Pages Category</th><th align="left" width="30%">Position</th><th align="left" width="30%">state</th></tr>';
  $outputDisplay .= '<div id="resultstable">';
  $outputDisplay .= '<div id="headers">';
  $outputDisplay .= '<ul id="headers">';
  $myrowcount = 0;
  for ($i=0; $i < count($totalResults); $i++)
  {
  $myrowcount++;
  $contactid = $totalResults[$i]['id'];
  $firstname = $totalResults[$i]['firstname'];
  $lastname = $totalResults[$i]['lastname'];
  $pcat 	   = $totalResults[$i]['pcat'];
  $position 	   = $totalResults[$i]['position'];
  $state 	   = $totalResults[$i]['state'];

  $outputDisplay .= '<ul id="results">';
  $outputDisplay .='<li>'.$contactid.'</li>';
  $outputDisplay .= '<li><span style="font-size:10px;cursor:pointer" onclick="openCon();getContactsToForm();">'.$firstname.'</span></li>';
  $outputDisplay .= '<li><span style="font-size:10px;cursor:pointer" onclick="openCon()">'.$lastname.'</span></li>';
  $outputDisplay .= '<li><span style="font-size:10px;cursor:pointer" onclick="openCon()">'.$pcat.'</span></li>';
  $outputDisplay .= '<li><span style="font-size:10px;cursor:pointer" onclick="openCon()">'.$position.'</span></li>';
  $outputDisplay .= '<li><span style="font-size:10px;cursor:pointer" onclick="openCon()">'.$state.'</span></li>';

  $outputDisplay .= '</ul>';
  //echo $myrowcount;

  }

  $outputDisplay .= "</div>";

  return $outputDisplay;


  }



  function checkOr($searchArray){
  if (in_array("OR",$searchArray)){
  $orPos = array_search("OR", $searchArray);
  //$surrVal =array();
  //$surrVal = array(--$orPos, ++$orPos);
  if (!empty($orPos)){ 
  $surrVal = "";
  $surrVal = --$orPos;
  $orValArray = array();
  array_push($orValArray,$searchArray[$surrVal]);
  $surrVal = $orPos+2;
  array_push($orValArray,$searchArray[$surrVal]);
  return $orValArray;


  }


  }
  }
&#13;
&#13;
&#13;

我得到的结果是:

  • 209
  • 阿尼斯艾哈
  • 贝克
  • DC
  • 但是从控制台方面: enter image description here

    0 个答案:

    没有答案