2014-01-28 2 views
-3

У меня возникла проблема с выводом HTML в эхом PHP, я не могу понять, что не так с моими кавычками.Проблема с кавычками Выход PHP/HTML

echo '<tr><td>' . $row[1] . '</td><td>' . $row[2] . '</td><td>' . $row[3] . '</td><td><input type=\"button\" class=\"button-link\" value=\"Create\" onClick=\"location.href="fyp.comeze.com/createassignment.php?module_id=\"' . row[2] . "\''/></td><td><input type=\"button\" class=\"button-link\" value = \"Edit\" onClick=\"\" /></td><td><input type=\"button\" class=\"button-link\" value = \"PDF\" onClick=\"\" /></td></tr>'; 

Это моя ошибка:

Parse error: syntax error, unexpected '[', expecting ',' or ';' in \public_html\FYP\modules.php on line 24 

Любая помощь или помощь очень ценится.

+0

Вы должны просто использовать двойные кавычки всю строку и использовать '{$ строки [1]}' синтаксис. Или взгляните на синтаксис heredoc. Все эти конкатенации строк являются кошмаром для ремонтопригодности - как показывает ваша проблема. – crush

ответ

2

Вы, кажется, возникли 2 проблемы здесь

второе вхождение в $ строки [2] отсутствует это префикс $. Рядом с этим вы видите, что избегаете своего HTML, как если бы вы использовали двойные кавычки, а это не так.

Попробуйте следующее:

echo 
'<tr>', 
    '<td>', $row[1], '</td>', 
    '<td>', $row[2], '</td>', 
    '<td>', $row[3], '</td>', 
    '<td>', 
     '<input type="button" class="button-link" value="Create" onClick="location.href=\"fyp.comeze.com/createassignment.php?module_id=', $row[2], '\"" />', 
    '</td>', 
    '<td>', 
     '<input type="button" class="button-link" value="Edit" onClick="" />', 
    '</td>', 
    '<td>', 
     '<input type="button" class="button-link" value="PDF" onClick="" />', 
    '</td>', 
'</tr>'; 
+0

Это чистый способ вывода этого, если он просто хочет повторить его на странице. Я боюсь, что это может вызвать команду echo индивидуально для каждого элемента с разделителями-запятыми. Это, вероятно, по крайней мере так же быстро, как конкатенация строк. Может быть, быстрее? – crush

+0

Вау, приветствия для комментария. Ужасное исправление для моей проблемы. – user1839601

+0

Я должен был фактически заменить запятые в первых 3 с точками для конкатенации. Это исправило это. – user1839601

0

Вам не хватает $ со второй ссылкой на row[2]. Должно быть $row[2].

+0

Его цитаты также перепутаны. '= \" '. row [2]. "\' '' – crush

+0

Кроме того, если/когда это действительно эхо, он будет иметь тег HTML, например: ' 'Это, очевидно, еще одна проблема. – crush

+0

Я исправил это, долгий день ... спасибо Я также исправил ссылку, удалив JS. – user1839601

0

Этот код должен исправить свои проблемы цитаты ..

echo '<tr><td>' . $row[1] . '</td><td>' . $row[2] . '</td><td>' . $row[3] . '</td> 
<td><input type="button" class="button-link" value="Create" onClick="location.href="fyp.comeze.com/createassignment.php?module_id="' . $row[2] . '"></td> 
<td><input type="button" class="button-link" value = "Edit" onClick="" /></td><td><input type="button" class="button-link" value = "PDF" onClick="" /></td></tr>'; 
0

Я думаю, что это экранирующие символы вы положили в для атрибутов HTML элементов. Это не обязательно, если вы вставляете всю строку в одинарные кавычки.

Так, например, class=\"button-link\", вероятно, следует 'class="button-link"';

+0

Хотя они не нужны, это не является источником проблемы. – crush

+0

Я уверен, что атрибуты должны быть окружены в двойных кавычках ... 0_o: D –

+0

A) Я никогда не говорил, что это не так. Я говорил о том, что бегство не нужно. B) Нет, атрибуты не должны быть окружены двойными кавычками. На самом деле они могут быть окружены одинарными кавычками или кавычками в все. – crush

Смежные вопросы