5

こんにちは、あなたの助けに感謝します、

PHPを使用してXMLリクエストを記述していますが、値フィールドで変数を使用するとエラーが返されるという問題があります。ただし、値を手動で書き込むと、完全に機能します。フィールド名='Serial_Number'の下に、$MREPSerialが変数であることがわかります。PHPに$MREPSerial='A-000-1042'があると仮定しましょう。以下のXMLはエラーになります。ただし、$ MREPSerialをXMLの値だけに置き換えると、成功します。どんな助けでも大歓迎です。ありがとうございました!

$MREPSerial  = htmlspecialchars(strtoupper($_POST['NSMREP']));
echo "Hi".$MREPSerial;
<ZohoCreator>
            <applicationlist>
                <application name='ajout-de-materiel'>
                    <formlist>
                        <form name='MREP'>
                            <update>
                                <criteria>
                                    <field name='Serial_Number' compOperator='Equals' value={$MREPSerial}></field>
                                    <reloperator>AND</reloperator>
                                    <field name='MREP_Type' compOperator='Equals' value='0'></field>                            
                                </criteria>
                                <newvalues>
                                    <field name='Is_being_Used' value='TRUE'></field>
                                </newvalues>
                            </update>    
                        </form>
                    </formlist>
                </application>
            </applicationlist>
        </ZohoCreator>";

...エコーでの戻り応答(エコーしたXMLを含む)

A-000-1012HI! <?xml version="1.0" encoding="UTF-8" ?>
<response><errorlist><error><code>2830</code><message><![CDATA[Open quote is expected for attribute "value" associated with an  element type  "field".]]></message></error></errorlist></response>

'"。$MREPSerial"に変更した場合のエコーの応答。は:

A-000-1012HI! <?xml version="1.0" encoding="UTF-8" ?>
<response><result><form name="MREP"><update><criteria><field name="Serial_Number" compOperator="Equals" value=""></field><reloperator>AND</reloperator><field name="MREP_Type" compOperator="Equals" value="0"></field></criteria><newvalues><field name="Is_being_Used"><value><![CDATA[TRUE]]></value></field></newvalues> <status>Failure, No Records Found With Specified Criteria</status></update></form></result></response>
4

2 に答える 2

3

次のように、value属性の実際の値を引用符で囲む必要があります。

<field name='Serial_Number' compOperator='Equals' value='{$MREPSerial}'></field>
于 2012-09-13T18:12:22.390 に答える
0

ちょうどあなたの";近いタグを見ました...

その行でこれを試してください

 <field name='Serial_Number' compOperator='Equals' value='".$MREPSerial."'></field> 
于 2012-09-13T18:17:36.480 に答える