2016-01-28 4 views
0

У меня есть проект, где у меня есть PHP-код, внутри этого я должен эхо-HTML, который имеет функцию JavaScript onclick(), которая принимает только двойные кавычки. Проблема заключается в том, что echo использует двойную кавычку, так что в моем коде есть синтаксическая ошибка, и я новичок в PHP, поэтому я не знаю, как это решить.Как решить двойную цитату внутри двойной синтаксической ошибки цитаты

Вот код:

echo " 
      <span class = 'username'>".$row['username']."</span> 
      <form name = 'matchcreator' class='amount' action='arena.php' method ='post'> 
      <input name = 'm-maker' type = 'number' class='price' min='5' max='100' value='5'/> 
      <div class = 'review'> 
      <p>REVIEW</p> 
      </div> 
      <button id ='send' type = 'button' onclick="Confirm.render('yes','no')">Send Challenge</button> 
      </form> 
      ";    
    echo "<br>"; 

Я знаю, что это ошибка синтаксиса я просто не знаю, как ее решить. Любая помощь будет оценена по достоинству.

+1

избежать двойные кавычки, которые не являются для PHP с помощью обратной косой черты –

+0

Почему разве вы не повторяете только содержание, связанное с php? Например: ' ' – Rayon

+1

вы можете использовать php' HEREDOC', [link] (http://php.net/manual/en/language.types.string.php) – anonymous

ответ

2
echo " 
      <span class = 'username'>".$row['username']."</span> 
      <form name = 'matchcreator' class='amount' action='arena.php' method ='post'> 
      <input name = 'm-maker' type = 'number' class='price' min='5' max='100' value='5'/> 
      <div class = 'review'> 
      <p>REVIEW</p> 
      </div> 
      <button id ='send' type = 'button' onclick=\"Confirm.render('yes','no')\">Send Challenge</button> 
      </form> 
      ";    
    echo "<br>"; 
} 

Просто убегая с \»

1

Вы просто должны избежать его, используя оператор \. Это говорит PHP, что это не следует рассматривать как цитаты в PHP, но и как символ, рассматриваться как часть строки вместо этого. в качестве примера

echo "<input name=\"send\" />"; 

будет выводить

<input name="send" /> 

Так что в вашем конкретном случае, onclick="Confirm.render('yes','no')" потребуется его двойные кавычки бежали, как это: onclick=\"Confirm.render('yes','no')\"

Вы также можете просто выйти из PHP при разборе HTML и эха конкретных PHP элементов, что делает для более легкого и чистого кода

<?php /*begin PHP here, and exit it */?> 
<span class="username"><?php echo $row['username']; ?></span> 
<form name "matchcreator" ><!-- rest of form --> 
<?php // continue PHP... 
0
echo " 
       <span class = 'username'>".$row['username']."</span> 
       <form name = 'matchcreator' class='amount'    action='arena.php' method ='post'> 
       <input name = 'm-maker' type = 'number' class='price' min='5' max='100' value='5'/> 
       <div class = 'review'> 
       <p>REVIEW</p> 
       </div> 
       <button id ='send' type = 'button' onclick=\"Confirm.render('yes','no')\">Send Challenge</button> 
       </form> 
       ";    
     echo "<br>"; 

Просто избежать double quote с обратной косой черты \

0

Поместите onclick=\"Confirm.render('yes','no')\" ниже

<button id ='send' type = 'button' onclick=\"Confirm.render('yes','no')\">Send Challenge</button> 
0

Смените двойные кавычки с обратной косой чертой.

echo " 
     <span class = 'username'>".$row['username']."</span> 
     <form name = 'matchcreator' class='amount' action='arena.php' method ='post'> 
     <input name = 'm-maker' type = 'number' class='price' min='5' max='100' value='5'/> 
     <div class = 'review'> 
     <p>REVIEW</p> 
     </div> 
     <button id ='send' type = 'button' onclick=\"Confirm.render('yes','no')\">Send Challenge</button> 
     </form> 
     ";    
echo "<br>"; 

Это работает для меня.

0

использовать его как это:

echo '<span class = "username">'.$row['username'].'</span> 
        <form name = "matchcreator" class="amount" action="arena.php" method ="post"> 
        <input name = "m-maker" type = "number" class="price" min="5" max="100" value="5" /> 
        <div class = "review"> 
        <p>REVIEW</p> 
        </div> 
        <button id ="send" type = "button" onclick="Confirm.render(yes,no)">Send Challenge</button> 
        </form> 
        ';    
      echo '<br>'; 
0

Вот исправленный простой чистый код clean code. Теперь все, что вам нужно, это изменить кнопки диалога подтверждения с помощью (да и нет).

?> 
<span class = 'username'><?php echo $row['username']; ?></span> 
<form name = 'matchcreator' class='amount' action='arena.php' method='post'> 
<input name = 'm-maker' type = 'number' class='price' min='5' max='100' value='5'/> 
<div class = 'review'> 
    <p> 
     REVIEW 
    </p> 
</div> 
<button id ='send' type = 'button' onclick="return confirm('are you sure?')">Send Challenge</button> 
</form> 
<br> 

<?php 

//rest of the code 

?> 

надеюсь, что это поможет.

0

Вы также можете сделать так: Просто напишите свой код в {}

echo  "<span class = 'username'>{$row['username']}</span> 
      <form name = 'matchcreator' class='amount' action='arena.php' method ='post'> 
      <input name = 'm-maker' type = 'number' class='price' min='5' max='100' value='5'/> 
      <div class = 'review'> 
      <p>REVIEW</p> 
      </div> 
      <button id ='send' type = 'button' onclick={Confirm.render('yes','no')}>Send Challenge</button> 
      </form> <br>";  
?> 
0

Попробуйте это: -

echo '<span class = "username">'.$row['username'].'</span> 
      <form name = "matchcreator" class="amount" action="arena.php" method ="post"> 
      <input name = "m-maker" type = "number" class="price" min="5" max="100" value="5"/> 
      <div class = "review"> 
      <p>REVIEW</p> 
      </div> 
      <button id ="send" type = "button" onclick="Confirm.render('."yes".','."no".')">Send Challenge</button> 
      </form>';    
    echo "<br>"; 
Смежные вопросы