Я работаю над PHP-скриптом, который будет:
1. Подключиться к базе данных
2. Запросите в базе данных строку, введенную пользователем
3. Отобразите каждую строку, возвращаемую запросом, в виде динамически созданной формы. Каждая форма имеет два «скрытых» поля ввода, которые будут использоваться для заполнения отдельной страницы некоторыми изображениями и текстом. Форма отправляется по ссылке, которая использует атрибут onclick вместе с javascript document.form.submit () для обработки отправки формы.
Проблема, с которой я сталкиваюсь, заключается в том, что каждая созданная форма заставляет страницу выдавать ошибку «Ожидается точка с запятой», заявляя, что в моем коде должна быть точка с запятой в середине слова! Я на 99,99% уверен, что все, что вызывает эту ошибку, находится где-то в приведенном ниже коде, но я уже давно смотрю на нее, и я в замешательстве.
// Run a query against each field to search for input
foreach($columns as $field){
$searchquery = 'SELECT * FROM mytable WHERE '.$field.' LIKE \'%'.$input.'%\'';
$results = $db->Execute($searchquery);
// We introduce HTML formatting for each result in $results
foreach($results as $resultset) {
echo '<div style="border: 2px solid black;">';
// Each result in $results is an array, where the keys and values correspond to the field names and values of the table
foreach($resultset as $key=>$value) {
if($key == 'ID'){ // Query the database by ID for the rows returned by the previous query
$resultquery = 'SELECT field1, field2, field3 FROM mytable WHERE '.$key.' = \''.$value.'\'';
$row = $db->Execute($resultquery);
$row = explode(",", $row);
$id = $row[2];
$company = $row[3];
$prodname = $row[4];
echo "<form name='rowForm.$i' action='page.php' method='POST'>";
echo "<input type='hidden' name='Company' value='$company'>";
echo "<input type='hidden' name='ProductName' value='$prodname'>";
echo "<a href='path/to/my/page' onclick='javascript:document.rowForm.$i.submit(); return false;'> $company - $prodname ($id) </a>";
echo "</form>";
$i++;
}
}
echo '</div>';
}
}
Fyi, $ columns - это массив, который содержит имена всех столбцов в моей таблице. Все формы отображаются правильно, и все выглядит так, как должно; единственная проблема заключается в том, что ссылки не работают должным образом из-за этой точки с запятой. Я уверен, что опубликовал весь соответствующий код, но не стесняйтесь, дайте мне знать, если кажется, что чего-то не хватает. Если кто-то может указать мне правильное направление в этом, я действительно ценю это!
РЕДАКТИРОВАТЬ: Вот HTML-код, который генерируется php выше, с добавлением некоторого дополнительного пробела и фактические значения для некоторых переменных заменены на {$ varname's value} для удобства чтения. Обратите внимание, что этот код создается для каждой строки, возвращаемой запросом sql.
<div style="border: 2px solid black;">
<form name='rowForm.0' action='page.php' method='POST'>
<input type='hidden' name='Company' value='{$company's value}'>
<input type='hidden' name='ProductName' value='{$prodname's value}'>
<a href='http://link/to/my/site' onclick='javascript:document.forms[\'rowForm.0\'].submit(); return false;'> {This is the link text} </a>
</form>
</div>