2012-02-16 8 views
0

こんにちは、html形式とphpスクリプトを持ち、htmlはPHPスクリプトのある形式でいくつかの値を渡します。ここにもjqueryのコードはphp jqueryと奇妙な文字

<script type="text/javascript"> 
     $(document).ready(function() { 

      $('#convert').click(function(){ 

       //pairno tis times ap tin forma 
       var name = $('#name').val(); 
       var tel = $('#tel').val(); 
       var tel2 = $('#tel2').val(); 
       var street = $('#street').val(); 
       var minconsum = $('#minconsum').val(); 
       var closedtill = $('#closedtill').val(); 
       var opentill = $('#opentill').val(); 
       var city = $('#city').val(); 
       var type = $('#type').val(); 

       if($('#city').val()=='ΑΤΤΙΚΗ') 
       { 
        var perioxi = $('#perioxiAtt').val(); 
       }else if($('#city').val()=='ΚΥΠΡΟΣ') 
       { 
        var perioxi = $('#perioxiKypr').val(); 
       }else if($('#city').val()=='ΘΕΣΣΑΛΟΝΙΚΗ') 
       { 
        var perioxi = $('#perioxiThess').val(); 
       }else{ 
        var perioxi = $('#perioxiGen').val(); 
       } 

       var dataString = "name=" + name + "&tel=" + tel + "&tel2=" + tel2 + "&street=" + street + "&minconsum=" + minconsum + "&closedtill=" + closedtill + "&opentill=" + opentill + "&city=" + city + "&perioxi=" + perioxi + "&type=" + type; 


       $.ajax({ 
       type: "POST", 
       url: "ajax_converter.php", 
       data: dataString, 
       success: function(data){ 
       //pairno ta dedomena 
       $('#results').show(); 

       //vazo ta dedomena sto results div tag. 
       $('#results').html(data); 
      } 
     }); 

あると

$name = $_POST['name']; 
$tel = $_POST['tel']; 
$tel2 = $_POST['tel2']; 
$street = $_POST['street']; 
$minconsum = $_POST['minconsum']; 
$closedtill = $_POST['closedtill']; 
$opentill = $_POST['opentill']; 
$city = $_POST['city']; 
$perioxi = $_POST['perioxi']; 
$type = $_POST['type']; 

通常のすべてがそうそれは私の問題である奇妙なcharachters &、<、>、などを除いて正常に動作として、私は私のPHPスクリプトで日付を取得します!

助けが本当に役に立つでしょう!ここ

は私のhtmlフォームは、私が「i「はZO & ZA」のような名前を入力すると、私が手に引用符なしで私の出力を言及するのを忘れてしまった問題

<label for="name">Όνομα:</label> 
<input type="text" name="name" id="name" value="" /> 

を持っていることの少なくとも一部でありますzo "それだけです。入力文字列の残りすべて

+0

あなたはあなただけしたい正確に何を提供することを期待しないだろうあなたの好きなレストランの通りを渡って図書館のテーブルに座って。あなたの質問に詳細を追加してください。あなたが挙げた文字はあなたのコードに何をしますか?どのようなアウトプットを手に入れ、どのアウトプットをしたいですか? – Bojangles

+0

ええ、申し訳ありませんが、 "zo&za"のような名前を引用符なしで入力すると、私の出力に言及するのを忘れていました。残りのすべての入力文字列は失われます –

答えて

2

わかりやすくするために、私は以下のようなAjaxパラメータを定義し、jQueryを適切にエンコーディングするためにそれをquerystringに変換させます。あなたはたとえば、変数の一つに「&」文字があった場合、それは手動で問題が発生します構築(Christoferエリアソンの答えは、あまりにもこれを行う場合があります):

$.ajax({ 
    type: "POST", 
    url: "ajax_converter.php", 
    data: { 
     "name": name, 
     "tel": tel, 
     "tel2": tel2, 
     "street": street, 
     "minconsum": minconsum, 
     "closedtill": closedtill, 
     "opentill": opentill, 
     "city": city, 
     "perioxi": perioxi, 
     "type": type 
    }, 
    success: function(data){ 
     //pairno ta dedomena 
     $('#results').show(); 

     //vazo ta dedomena sto results div tag. 
     $('#results').html(data); 
    } 
}); 
+0

私の問題を多く解決しました!シリアル化はうまくいきませんでした... –

1

を失っている私は質問を理解してもわからないんだけど、私の推測では、問題はこのラインであるかもしれないということです。

var name = $('#name').html(); 

あなたは何に依存.html()を使用しているので要素#nameのタイプは、あなたの名前としてHTMLを取得する可能性があります( "特殊文字<>")。それが入力要素の場合は、代わりにvar name = $('#name').val();を使用して値を取得します。

編集

だから私はあなたの問題は、今あるものを見るかもしれないが、問題は、データ文字列の右を作成することにありますか?それは特殊文字に問題が発生する場所ですか?

の代わりに、あなたのようにそれをやって:

var dataString = "name=" + name + "&tel=" + tel + "&tel2=" + tel2 + "&street=" + street + "&minconsum=" + minconsum + "&closedtill=" + closedtill + "&opentill=" + opentill + "&city=" + city + "&perioxi=" + perioxi + "&type=" + type; 

あなたはjQueryの.serialize()の使用を作り、それをこのように行うことができます。

var dataString = $("#yourFormId").serialize(); 

これはあなたのためのフォーム全体をシリアル化して作成します。データ文字列全体 - 特殊文字で問題を処理し、コードを読みやすくします。

+0

ええ、私はあまりにも幸運を試してみました! –

+0

@MpampinosHolmensその場合、JamWafflesのコメントによると、少し質問を明確にする必要があると思います。あなたの特殊文字の問題は何ですか? –

+0

ok私の投稿を編集しました –