передать значение ячейки таблицы, полученной с помощью jQuery, на страницу php - PullRequest
0 голосов
/ 22 ноября 2018

Это мой первый вопрос здесь, и я немного нервничаю!Я могу получить значение простой HTML-ячейки таблицы, используя jQuery, но не могу передать его на страницу php для использования в качестве переменной php.Я пытался в течение 2 дней, используя все варианты, которые я нашел через Google - от Ajax, JSON до _POST / _GET и обратно.Я просто не могу с этим справиться, и сейчас я нахожусь в состоянии полного «разума».

Моя тестовая таблица:

<h3>Test Table</h3>
<table id="sourcetable">
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Url</th>
            <th>Country</th>
            <th>Item</th>                       
        </tr>
    </thead>

    <tbody>
        <tr>
            <td>1</td>
            <td>Name 1</td>
            <td>url 1</td>
            <td>Country 1</td>
            <td>Item 1</td>
        </tr>
    </tbody>
</table>

jQuery

<script type="text/javascript">
$(document).ready(function() {
    $( "#sourcetable tbody tr" ).on( "click", function( event ) {
        $("#fillname").val($(this).find("td").eq(1).html());
        var j=($(this).find("td").eq(1).html());
        document.getElementById("hidfo").innerHTML = JSON.stringify(j); 
    });
}); 
</script>

Я могу щелкнуть ячейку таблицы, получить ее значение и поместить ее в элемент P на той же странице, например:

<p id="hidfo"></p> 

или поле ввода html

<input type="text" id="fillname" value="" />

Но всеиначе я попытался в связи с передачей его в переменную php не удалось.Идеи?

AJAX

<script type="text/javascript">
$(function(){
$.ajax({
type: "POST",
url: 'clicktest.php',
data: ({prod: j}),
cache: false,
success: function()
{
alert("Order Submitted");
}
});
});
</script>

Сообщение об ошибке

jQuery.Deferred исключение: j не определено @ https://xxxxxx.com/portal/trans.php:127:19 l @ https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29373 a / https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29677 undefined

Простой PHP, который я использую на clicktest.php:

<?php
$temp=$_POST['prod'];
echo $temp;
?>

при загрузке страницы выдает ошибку PHP:

Примечание: неопределенный индекс: prod in / home /gameon / public_html / portal / clicktest.php в строке 32

1 Ответ

0 голосов
/ 23 ноября 2018

Вам нужно либо определить j вне области действия вашего обработчика .on( "click", function(, либо вызвать из него вызов AJAX, как только вы получите значение для j:

<script type="text/javascript">
$(document).ready(function() {
  $("#sourcetable tbody tr" ).on("click", function(event) {
    $("#fillname").val($(this).find("td").eq(1).html());
    var j = ($(this).find("td").eq(1).html());
    $("#hidfo").html(JSON.stringify(j)); 
    $.ajax({
      type: "POST",
      url: 'clicktest.php',
       // You don't need the parentheses for an object; might need to wrap in JSON.stringify() call
      data: {prod: j},
      cache: false,
      success: function() {
        alert("Order Submitted");
      },
      error: function (jqXHR, textStatus, errorThrown) {
        alert("Failed to submit order!");
        console.error(
          "Failed to submit order! " + JSON.stringify(jqXHR) + "\n\t"
          + textStatus + "; " + errorThrown
        );
      }
    });
  });
}); 
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...