#php
#php
Вопрос:
Я передал эту таблицу в php-файл, используя javascript, с помощью приведенного ниже кода:
var tbl = document.getElementById("prtable").innerHTML;
save(tbl);
function save(tbl)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7 , Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 amp;amp; xmlhttp.status==200)
{
}
}
xmlhttp.open("POST", "save.php", true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("q=" tbl);
}
}
Затем в файле PHP:
$table = $_POST['q'];
echo $table; //test display
есть ли способ сделать это подобным образом, чтобы выбрать определенную ячейку в таблице?
document.getElementById('tableID').rows.item(1).getElementsByTagName("td")[0].innerHTML
Есть ли в php эквивалент для этого кода javascript?
Что я хочу с этим сделать, так это иметь возможность извлекать данные из каждого из элементов. Я искал ответы в Интернете, но я застрял на этой проблеме в течение нескольких часов. Если кто-нибудь может мне помочь, я был бы очень признателен.
Спасибо!
Кстати, тест echo $ table отображает что-то вроде этого:
<tr>
<th>PR Number</th>
<th>Item Code</th>
<th>Description</th>
<th>Unit of Measure</th>
<th>Price</th>
<th>Quantity</th>
<th>Amount</th>
</tr>
<tr><td>PR001</td><td>IC001</td><td>Gloves (Plastic)</td><td>Pc</td><td>20.00</td><td>2</td><td>40.00</td></tr><tr><td>PR001</td><td>IC002</td><td>Gloves (Rubber)</td><td>Pc</td><td>25.00</td><td>3</td><td>75.00</td></tr></thead>
Комментарии:
1. Создается ли эта таблица вашим приложением? Кажется глупым отправлять HTML-таблицу через POST-запрос на сервер IMO. Было бы лучше в формате, подобном JSON или XML.
2. Может помочь простой HTML DOM. simplehtmldom.sourceforge.net если вы хотите продолжать делать это с таблицей.
3. Я получаю эту ошибку: «Неустранимая ошибка: вызов неопределенной функции str_get_html() в D:jongkeePHPwampwwwcapstoneentrysave.php в строке 148». Я использовал $html = str_get_html(‘$table’);
4. нет ли способа сделать это как document.getElementById(‘tableId’).rows.item(1).getElementsByTagName(«td»)[0].innerHTML в javascript? Есть ли в php эквивалент для этого?
Ответ №1:
Короткий ответ — нет, нет встроенной функции PHP для выполнения того, что вы хотите сделать. Вам нужно понимать, что на самом деле делает ваш Javascript и PHP-код.
Ваш Javascript преобразует вашу таблицу в сериализованный формат и затем передает его в PHP. Затем ваш PHP просто считывает данные вашей таблицы как одну очень длинную строку.
Что вы хотите сделать, так это использовать регулярное выражение для разбора различных значений внутри строки, и в конечном итоге вам будет удобнее использовать регулярное выражение для долгосрочного изучения, а не импортировать новую функцию. Я также согласен с AeroX, поскольку вы контролируете обе стороны приложения, вам, вероятно, было бы лучше передать их в формате JSON или XML, и тогда вы сможете очень легко выполнить итерацию через это.
И последнее, но не менее важное: вы действительно хотите очистить свои входные данные. Этот блок кода:
$table = $_POST['q'];
echo $table; //test display
Это небезопасный код.