2012-04-27 1 views
0

누군가 내 디자인 문제로 저를 도울 수 있기를 바랍니다. 나는 index.php를 가지고 :PHP HTML 자바 스크립트 디자인 문제

코드의 자바 스크립트 부분을 포함

가 :

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

이제 내 문제는 내가 필요하다 :

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

    foo... 

이 index.php에 또한 화면을 업데이트하는 양식이 포함 일부 변수를 getData.php에 전달하여 화면을 업데이트합니다. getData는 정적 정보와 잘 작동하지만 양식의 선택 사항에 따라 데이터가 변경됩니다.

변수를 전달하는 가장 좋은 방법은 무엇입니까?

아니면 잘못 설계하고 있습니까?

감사


내 업데이트 된 자바 스크립트는 다음과 같습니다

<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) { 

그런 다음 내 양식은 다음과 같습니다 : 아니오없이 내가 선택하거나, 때 이제까지을 확인 무엇

<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> 

을 업데이트 버튼을 클릭하면 JS 콘솔에 그 내용이 표시됩니다.

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

제안 사항?

+0

: // localhost를/getData.php' 단순히'/ getData.php' -이 된 직후 배포하는 경우 로컬 호스트가 작동하지 않습니다 실제 서버에 있습니다. JSONP을 사용하지 않는 한 모든 URL은 어쨌든 루트 도메인과 관련이 있어야합니다. –

+0

제안 해 주셔서 감사합니다.하지만 같은 결과가 나타납니다. 양식에서 무엇을 선택하든 다음 결과를 얻습니다. GET http : //localhost/getData.php? group_value = 0 & updatedb_value = 1'. –

+0

다른 제안 사항이 있습니까? 감사합니다 –

답변

2

폼 입력 값을 얻을 수 $(input_selector).val()을 사용할 수 있으며,이 같은 객체로해서 getJSON에 전달할 수 있습니다

또한 serialize을 사용할 수 있습니다
$.getJSON('http://localhost/getData.php', { 
    some_value: $(some_input).val(), 
    other_value: $(other_input).val() 
}, function(data) { ... }); 

모든 형태의 데이터를 전달하기 위해 :

$.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) {...}); = "myform"action = "index.php"method = "post"/> '그러면 getData.php에 가서 & do 이'if (isset ($ _GET [ "action"])) {do stuff}'아무 일도 일어나지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? –

0

흠. 이 줄을 매우 자세히 살펴보십시오.

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

양식을 자동 폐쇄했습니다. 입력/선택 요소 업데이트 방식에 문제가있을 수 있습니다. 변경하려면 다음으로 변경하십시오.

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

실제로 선택 요소에 복합 선택자가 필요하지 않습니다. 이것은 또한 당신이 선택한 가치를 얻을 것이다 :

$('#group_id').val() 
내가 HTTP`변경 제안
+0

고마워, 나는 너희들이 제공 한 모든 제안을 받아 들였지만 아직 작동시키지 못하고있다. JS Console에서 여전히'GET http : //localhost/getData.php? group_value = 0 & updatedb_value = 1 '을 얻습니다. –