2012-04-27 18 views
0

私は誰かが私の設計上の問題を手伝ってくれることを願っています。私はindex.phpを持っている:コードのjavascriptの一部が含まれていPHP HTML Javascriptデザインの問題

<script type="text/javascript"> 
$(function() { 
    $.getJSON('http://localhost/getData.php', function(data) { 

    foo... 

も、画面を更新し、フォームが含まれindex.phpを:

<form action="index.php" method="post" /> 
<input type="submit" name="action" value="update" /></p> 

を今私の問題は、私は必要ですいくつかの変数をgetData.phpに渡して画面を更新します。 getDataは静的情報で正常に動作しますが、フォームの選択に基づいてデータが変更されます。

私が変数を渡す最も良い方法は何ですか?

これを間違って設計していますか?

おかげ


私の更新されたJavaScriptは次のようになります。

<form id="myform" action="index.php" method="post" /> 
<select id="group_id" name="group"> 
<option value="0">Atlanta</option> 
<option value="1">Chicago</option> 
<option value="2">Los Angeles</option> 
<option value="3">New York</option> 
</select> 
<input type="submit" name="action" value="Update" /> 
<input type="checkbox" id="update_db_id" name="update_db" value="1" />Update DB?<br /> 
</form> 
どんなに私が選択した内容

またはチェック、ときに、これまで:

<script type="text/javascript"> 
$(function() { 
$.getJSON('http://localhost/getData.php', { 
group_value: $('#group_id option:selected').val(), 
updatedb_value: $('#update_db_id').val() 
}, function(data) { 

それから私のフォームは次のようになります更新ボタンをクリックすると、JSコンソールにそのメッセージが表示されます

GET http://localhost/getData.php?group_value=0&updatedb_value=1 

+0

:// localhost /をgetData.php'は単に'/getData.php'する - あなたがこのままのを展開している場合はlocalhostが動作しません。実サーバへの接続です。 JSONPを使用していない限り、すべてのURLはルートドメインからの相対パスでなければなりません。 –

+0

提案していただきありがとうございますが、同じ結果です。私がフォーム上で何を選択しても、次の結果が得られます: 'GET http://localhost/getData.php?group_value = 0&updatedb_value = 1'。 –

+0

他に提案がありますか?ありがとう –

答えて

2

あなたは、フォーム入力の値を取得するために$(input_selector).val()を使用することができ、あなたはこのように、オブジェクトとしてgetJSONにそれを渡すことができます:

$.getJSON('http://localhost/getData.php', { 
    some_value: $(some_input).val(), 
    other_value: $(other_input).val() 
}, function(data) { ... }); 

あなたはまた、すべてのフォームデータを渡すためにserializeを使用することができます。

$.getJSON('http://localhost/getData.php', $(form_selector).serialize(), function(data) { ... }); 
+0

すべてのPHPスクリプトであるgetData.phpからどのようにアクセスしますか? –

+0

@Peaceful_Warrior、データは '$ _GET'変数で利用可能になります。 http://php.net/manual/en/reserved.variables.get.phpを参照してください –

+0

私はこれを動作させることはできません。私はこの '$ .getJSON( 'http://localhost/getData.php'、$( '#myform')。serialize()、function(data){...});'それから 'this < => "myform" action = "index.php" method = "post" /> '次に、getData.php&doこの 'if(isset($ _GET [" action "])){do stuff}'何も起こりません。私は間違って何をしていますか? –

0

Hmm。この行を詳しく見てください:

<form id="myform" action="index.php" method="post" /> 

フォームを自己閉鎖しました。入力/選択要素の更新方法に問題がある可能性があります。

実際には、選択要素に複合セレクタは必要ありません。これはまた、あなたの選択した値を取得します:

$('#group_id').val() 
私はHTTP `変更することをお勧め
+0

ありがとう、私はあなたが提供しているすべての提案を取ってきましたが、まだそれを動作させるように見えることはできません。私はまだJSコンソールで 'GET http://localhost/getData.php?group_value = 0&updatedb_value = 1 'を取得します。 –

関連する問題