2

PHPでknockout.jsを使用しており、HTML/knockoutフォームを返すGETリクエストを作成しようとしています。これを行う理由は、フォームが他のユーザーによって使用されるためであり、かなり大きなコードのチャンクをコピー/貼り付けするのではなく、HTML/ノックアウトを返すサーバーにリクエストを送信するだけでコードが少なくなります。

//code on another server to request form from my server
$.ajax({
      //request here
    })
</script>

<div id = "update_div">
        <!--form data goes here when received -->
</div>

さて、これは私のサーバー上のコードです。問題があるのは、php を使用してエコーする必要があり、テキストを返す必要があるため、エコーするテキストを一重引用符または二重引用符で囲む必要があることです。ただし、私は一重引用符と二重引用符の両方を必要とするノックアウト.jsとノックアウト.js検証アドオンを使用しており、エコーをラップする引用符を本質的にキャンセルしています。

例えば、

 <?
    if($_GET['something']){
       echo '
         <tr>
            <td>Full Name</td>
            <td><span data-bind="validationOptions: { insertMessages: false}">
            <input type="text" data-bind="value: fullName, valueUpdate: 'afterkeydown'"/></span></td> 
            <td data-bind="validationMessage: fullName"></td>
        </tr>
       ';
     }
 ?>

特に問題を引き起こしている行は

<input type="text" data-bind="value: fullName, valueUpdate: 'afterkeydown'"/></span></td>

返されたエラーはどれですか

Parse error: syntax error, unexpected 'afterkeydown' (T_STRING)

エコーするときは、テキストとして返したいので一重引用符を使用しますが、その中で、さまざまな要素に対して一重引用符と二重引用符を使用する必要があります。これを回避する方法はありますか?

4

4 に答える 4

4

これを試して -

<?
    if($_GET['something']){
       echo '
         <tr>
            <td>Full Name</td>
            <td><span data-bind="validationOptions: { insertMessages: false}">
            <input type="text" data-bind="value: fullName, valueUpdate: \'afterkeydown\'"/></span></td> 
            <td data-bind="validationMessage: fullName"><center></center></td>
        </tr>
       ';
     }
 ?>
于 2013-06-19T11:45:40.987 に答える
2

PHP はハイパーテキスト プリプロセッサです。使用せずに生の HTML を記述できますecho[そしてそのような悪夢を引用する]:

<?php if($_GET['something']): ?>

 <tr>
    <td>Full Name</td>
    <td><span data-bind="validationOptions: { insertMessages: false }">
    <input type="text" data-bind="value: fullName, valueUpdate: 'afterkeydown'"/></span></td> 
    <td data-bind="validationMessage: fullName"><center></center></td>
</tr>

<?php endif; ?>

[SO 構文の強調表示がどのように機能するかを確認してください!]

ところで、<center>タグは HTML 4 以降非推奨です。

于 2013-06-19T11:48:37.567 に答える