javascript
  • php
  • 2017-04-12 1 views 1 likes 
    1

    私はボタンでテキストボックスを持っているし、テキストボックス内のボタンのテキストをクリック、データベースおよびテキストボックスの変更に挿入したときにラベルを付け、ラベルにそのテキストのショーが、私はJavaScriptでラベルテキストを変更したときに、余分なqoutationをエコーするためにPHPのページを持っていますコード:JavaScriptでinnerHTMLを使用すると、余分なqoutationが返されるのはなぜですか?</p> <p>PHP:

    echo "<label id='crlabel".$counterRecord."'></label>"; 
    echo "<input name='cr_number1' id='cr_number".$counterRecord."' type='text'>"; 
    echo "<input class='pad' type='button' id='cr".$counterRecord."' style='background-color:#428bca' value='s'>"; 
    

    JSコード:

    for (var i = 1; i < 21; i++) { 
    (function(cr) { 
        $("#cr"+cr).click(function() { 
         $.get("cr.php", { 
          id: $("#recordid"+cr).val(), 
          cr_number:'"' +$("#cr_number"+cr).val()+ '"' 
         },function(data){if(data =="cr"){ 
         alert("cr submitted before you");}else{ 
    $("#cr_number"+cr).fadeOut(500); 
         $("#cr"+cr).fadeOut(500); 
         document.getElementById('crlabel'+cr).innerHTML = data; 
         $("#crlabel"+cr).fadeIn(500);});    
        } 
    }); 
    
    })(i);} 
    

    cr.php:

    $cr_number=$_GET['cr_number']; 
    if ($row["cr_number"]!=""){ 
    echo "cr";} 
    else{mysql_query("UPDATE cr SET cr_number=".$cr_number." WHERE id=".$id.";",$con);echo $cr_number;} 
    

    このコードは正常に動作が、私は、余分なqoutation開始とデータの終わりが好きではありません 例を示しています。私が欲しいものを「3443」 :3443

    +0

    使用を '\" 'これは怖いコードがどのように – ddeadlink

    +0

    @ddeadlinkを避けるために?。神の愛のために、あなたのデータベースクエリを浄化してください(http://bobby-tables.com/)。そして、新しいコードでPHPの**非推奨** mysql_ *関数の使用を止め、[MySQLi](http ://php.net/manual/en/book.mysqli.php)または代わりに[PDO](http://php.net/manual/en/book.pdo.php) – aynaz

    +0

    この – megaflop

    答えて

    2

    あなたは、次のデータ

    { 
          id: $("#recordid"+cr).val(), 
          cr_number:'"' +$("#cr_number"+cr).val()+ '"' 
         } 
    

    渡しますcr_numberの先頭と最後に引用符を追加します。あなた

    echo $cr_number; 
    

    引用符は、応答になりますとき、その結果$_GET['cr_number']値の中にあるものを引用符を保持します。応答には引用符が含まれており、innerHTMLに入れると、引用符が含まれます。作る、引用符を含まないために、この動作を変更するには必ず、データに最初の場所でそれらを追加しないでください:

    { 
          id: $("#recordid"+cr).val(), 
          cr_number:$("#cr_number"+cr).val() 
         } 
    
    +0

    データベースには挿入されていません" – aynaz

    +0

    qoutationを持っていない場合、私のデータはデータベースに挿入されません。私は " – aynaz

    +1

    @aynazを送信する必要があります。あなたはあなたのデータベースにデータを挿入するコードを共有しませんでした。また、mysql_queryはすべてのmysql_ *関数として廃止されました。 SQLインジェクションに脆弱です。また、なぜあなたのケースにデータを挿入する必要があるのか​​わかりません。 'を使用すると、それは別のことですが、クエリを生成し、GETパラメータに生成しない場所で使用する必要があります。質問を編集して詳細を追加する必要があります。それが完了したときに私に教えてください。 –

    関連する問題