jQuery ajax()를 통해 PHP로 여러 확인란 데이터 전송
저는 jQuery의 .html을 통해 제 웹사이트에 텍스트 영역 필드와 입력 필드(임의의/수의 확인란이 있는 유형="선택")가 포함된 POST 양식을 제출하고 싶습니다.PHP는 텍스트 영역 데이터를 수신하고 Ajax 응답이 사용자에게 올바르게 표시됩니다.그러나 PHP가 확인란 데이터(확인되었는지 여부)를 수신하지 못하고 있는 것 같습니다.어떻게 하면 이것을 작동시킬 수 있을까요?제가 가지고 있는 코드는 다음과 같습니다.
HTML:
<form method="post" action="myurl.php" id=myForm>
<textarea id="myField" type="text" name="myField"></textarea>
<input type="checkbox" name="myCheckboxes[]" id="myCheckboxes" value="someValue1" />
<input type="checkbox" name="myCheckboxes[]" id="myCheckboxes" value="someValue2" />
...(maybe some more checkboxes - dynamically generated as necessary)
<input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" />
</form>
jQuery:
function submitForm() {
$(document).ready(function() {
$("form#myForm").submit(function() {
var myCheckboxes = new Array();
$("input:checked").each(function() {
myCheckboxes.push($(this).val());
});
$.ajax({
type: "POST",
url: "myurl.php",
dataType: 'html',
data: { myField:$("textarea[name=myField]").val(),
myCheckboxes:myCheckboxes },
success: function(data){
$('#myResponse').html(data)
}
});
return false;
});
});
자, PHP는
$myField = htmlspecialchars( $_POST['myField'] ) );
if( isset( $_POST['myCheckboxes'] ) )
{
for ( $i=0; $i < count( $_POST['myCheckboxes'] ); $i++ )
{
// do some stuff, save to database, etc.
}
}
// create the response
$response = 'an HTML response';
$response = stripslashes($response);
echo($response);
모든 것이 잘 작동합니다. 양식이 제출되면 새 레코드가 내 데이터베이스에 저장되고 응답이 웹 페이지로 다시 Ajax되지만 확인란 데이터는 전송되지 않습니다.확인란 중 어떤 것이 선택되었는지 알고 싶습니다..serialize(), JSON 등에 대해 읽었지만 효과가 없었습니다.직렬화해야 합니까/JJQuery와 PHP의 SON? 어떻게?확인란과 함께 양식 데이터를 보낼 때 한 가지 방법이 다른 방법보다 낫습니까?저는 이틀 동안 이것에 갇혀 있었어요.어떤 도움이라도 주시면 대단히 감사하겠습니다.미리 감사드립니다!
네, jquery.serialize()에 대한 작업이 꽤 됩니다.
HTML
<form id="myform" class="myform" method="post" name="myform">
<textarea id="myField" type="text" name="myField"></textarea>
<input type="checkbox" name="myCheckboxes[]" id="myCheckboxes" value="someValue1" />
<input type="checkbox" name="myCheckboxes[]" id="myCheckboxes" value="someValue2" />
<input id="submit" type="submit" name="submit" value="Submit" onclick="return submitForm()" />
</form>
<div id="myResponse"></div>
제이쿼리
function submitForm() {
var form = document.myform;
var dataString = $(form).serialize();
$.ajax({
type:'POST',
url:'myurl.php',
data: dataString,
success: function(data){
$('#myResponse').html(data);
}
});
return false;
}
이제 PHP, 나는 POST 데이터를 내보냅니다.
echo var_export($_POST);
모든 확인란 값이 전송된 것을 확인할 수 있습니다.당신에게 도움이 되길 바랍니다.
var myCheckboxes = new Array();
$("input:checked").each(function() {
data['myCheckboxes[]'].push($(this).val());
});
확인란을 잘못된 배열로 밀어넣고 있습니다.data['myCheckboxes[]']
대신에myCheckboxes.push
이것 좀 보세요.
<script type="text/javascript">
function submitForm() {
$(document).ready(function() {
$("form#myForm").submit(function() {
var myCheckboxes = new Array();
$("input:checked").each(function() {
myCheckboxes.push($(this).val());
});
$.ajax({
type: "POST",
url: "myurl.php",
dataType: 'html',
data: 'myField='+$("textarea[name=myField]").val()+'&myCheckboxes='+myCheckboxes,
success: function(data){
$('#myResponse').html(data)
}
});
return false;
});
});
}
</script>
그리고 내 URL에.php 당신이 사용할 수 있습니다.print_r($_POST['myCheckboxes']);
당신도 이것을 시도해 볼 수 있습니다.
var arr = $('input[name="myCheckboxes[]"]').map(function(){
return $(this).val();
}).get();
console.log(arr);
$.post("test.php", { 'choices[]': ["Jon", "Susan"] });
확인란을 반복하여 배열을 작성했습니다.뭐 그런 거.
var data = { 'user_ids[]' : []};
$(":checked").each(function() {
data['user_ids[]'].push($(this).val());
});
$.post("ajax.php", data);
지금 가지고 계신 코드는 괜찮은 것 같습니다.이를 사용하여 확인란 배열에 포함된 내용을 확인합니다.php 스크립트 상단에 이 코드를 추가하고 확인란이 스크립트로 전달되는지 확인합니다.
echo '<pre>'.print_r($_POST['myCheckboxes'], true).'</pre>';
exit;
언급URL : https://stackoverflow.com/questions/9493531/send-multiple-checkbox-data-to-php-via-jquery-ajax
'programing' 카테고리의 다른 글
Less가 CSS calc() 속성을 컴파일하려는 것을 방지하는 방법은 무엇입니까? (0) | 2023.08.15 |
---|---|
Angular에서 불순한 파이프는 무엇입니까? (0) | 2023.08.15 |
C#에서 JSON 배열(또는 목록)을 역직렬화합니다. (0) | 2023.08.15 |
CSS로 svg 경로의 채우기 색을 변경할 수 있습니까? (0) | 2023.08.15 |
도커-ce 및 도커-ee(현재 "Mirantis Kubernetes Engine"이라고 함)와 관련된 docker.io 는 무엇입니까? (0) | 2023.08.10 |