2016-07-05 1 views
-2

Ajax, Jquery, Javascript를 루프로 구현하는 데 많은 문제가 있습니다. 현재 do-while 루프의 모든 레코드에 대해 반복하여 사용하려는 "바 등급 시스템"이 있습니다. 그러나 내가 알아 내지 못하는 것은 잘못입니다. 울부 짖는 문제에 관련 코드의do-while 루프의 Jquery bar rating 시스템

부분 :

<?php 
$editFormAction = $_SERVER['PHP_SELF']; 
if (isset($_SERVER['QUERY_STRING'])) { 
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);} 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "formevalcoment")) { 
$insertSQL = sprintf("INSERT INTO tblevaluacion (idUser, idComent, intEvaluacion, dateFecha, intActivo) VALUES (%s,%s,%s,%s,%s)", 
        GetSQLValueString($_POST['idUser'], "int"), 
        GetSQLValueString($_POST['idComent'], "int"), 
        GetSQLValueString($_POST['intEvaluacion'], "int"), 
        GetSQLValueString($_POST['dateFecha'], "timestamp"), 
        GetSQLValueString($_POST['intActivo'], "int")); 

mysql_select_db($database_conexionproject, $conexionproject); 
$Result1 = mysql_query($insertSQL, $conexionproject) or die(mysql_error()); 

$insertGoTo = ""; 
if (isset($_SERVER['QUERY_STRING'])) { 
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; 
$insertGoTo .= $_SERVER['QUERY_STRING']; 
} 
header(sprintf("Location: %s", $insertGoTo)); 
} 
?> 

    <?php 
    if ($totalRows_DatosComentarios > 0) { // Show if recordset not empty 

    do { 
<p class="eval_coment">Update your current evaluation</p> 

    <form id="<?php echo 'form-evalcoment'.$m ?>" name="<?php echo 'form-evalcoment'.$m ?>" class="eval-form"> 

    <select class="bars-reversed" id="<?php echo 'bars-reversed'.$m; ?>" name="intEvaluacion" style="display:none" data-number="<?php echo $m; ?>"> 
     <option value="-2" style="color:red" <?php if (!(strcmp(-2, htmlentities(ObtenerEvalUsuario($row_DatosComentarios['idComent']), ENT_COMPAT, 'iso-8859-1')))) {echo "SELECTED";} ?>>Muy en desacuerdo (--)</option> 
     <option value="-1" style="color:red" <?php if (!(strcmp(-1, htmlentities(ObtenerEvalUsuario($row_DatosComentarios['idComent']), ENT_COMPAT, 'iso-8859-1')))) {echo "SELECTED";} ?>>En desacuerdo (-)</option> 
     <option value="0" <?php if (!(strcmp(0, htmlentities(ObtenerEvalUsuario($row_DatosComentarios['idComent']), ENT_COMPAT, 'iso-8859-1')))) {echo "SELECTED";} ?>>No aporta (0)</option> 
     <option value="1" style="color:blue" <?php if (!(strcmp(1, htmlentities(ObtenerEvalUsuario($row_DatosComentarios['idComent']), ENT_COMPAT, 'iso-8859-1')))) {echo "SELECTED";} ?>>Deacuerdo (+)</option> 
     <option value="2" style="color:blue" <?php if (!(strcmp(2, htmlentities(ObtenerEvalUsuario($row_DatosComentarios['idComent']), ENT_COMPAT, 'iso-8859-1')))) {echo "SELECTED";} ?>>Muy deacuerdo (++)</option> 
    </select> 

    <input type="hidden" name="dateFecha" value="now()" /> 
    <input type="hidden" name="intActivo" value="1" /> 
    <input type="hidden" name="MM_insert" value="formevalcoment" /> 
    <input type="hidden" name="idComent_persopoli" value="<?php echo $row_DatosComentarios_CaractPoli['idComent_persopoli']; ?>" /> 
    <input type="hidden" name="idUser" value="<?php echo $_SESSION['MM_IdUser']; ?>" /> 
    </form> 
    <?php 
    $m++; 
    } while ($row_DatosComentarios = mysql_fetch_assoc($DatosComentarios)); 

몸 전에 태그가 종료 : 시간과 도움에 미리

<script src="assets/jquery.barrating.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $('.bars-reversed').barrating({ 
     theme: 'bars-reversed' 
     }); 
    }); 
</script> 

<script> 
$('.eval-form').submit(function(e){ 
var url = "<?php echo $editFormAction; ?>"; 
var data = $(this).serialize(); 

$.ajax({ 
    type: "POST", 
    url: url, 
    data: data, 
    success: function(data) 
    { 
     alert(data); // show response from the php script. 
    } 
    }); 
    e.preventDefault(); 
    }); 

    $('.bars-reversed').click(function() { 
    var formNumber = $(this).attr('data-number'); 
    $("#form-evalcoment" + formNumber).submit(); 
    }); 
    </script> 

많은 감사합니다.

+0

콘솔에 오류가 있습니까? 증상은 무엇입니까? – mplungjan

+0

'do {'은 닫혀 있지 않습니다. –

+0

당신이 기대하는 것과 당신이 보는 것을 나타내주십시오. 뭐가 잘못 됐어. 너 그렇게 말하는거야? – PaulH

답변

0

현재 선택 요소를 클릭 할 때이 작업을 수행하려고합니다. 대신 변화하고 시도해야합니다 : 클릭에

function submitForm(data) { 
var url = "<?php echo $editFormAction; ?>"; 

$.ajax({ 
    type: "POST", 
    url: url, 
    data: data, 
    success: function(data) 
    { 
     alert(data); // show response from the php script. 
    } 
    }); 
}; 

$('.bars-reversed').on('change', function() { 
    var formNumber = $(this).attr('data-number'); 
    var data = $("#form-evalcoment" + formNumber).serialize(); 
    submitForm(data); 
}); 

내가 제출 한 양식을한다고 가정 할 때, 이는 오히려이 변경 될 때보다 빨리 요소가 클릭 될 때 양식을 제출합니다.

+0

안녕하세요, 도움을 주셔서 감사합니다. 지금은 on ('change', ... 사용 중입니다.) 적어도 반응이 있습니다. 그러나 아직 레코드의 평가 값을 전송하지 않습니다. – malmonacid001

+0

안녕하세요, 도움을 주셔서 감사합니다. 그것은 적어도 반응하지만. 아직 어떤 레코드의 평가 값을 보내고 있지 않습니다. 잘 작동해야합니다. 비슷한 평가 시스템과 동일한 동적 ID 논리를 사용했습니다. 그것은 잘 작동하고 있습니다. 차이점은이 하나를 사용하는 것입니다 Jquery. 다음 바 평가를 표시하는 자신의 클래스와 새 div를 만드는 것입니다. – malmonacid001

+0

양식에 대해 설정된 양식 작업 특성이 어떤 비율로 설정되어있는 것 같지 않습니다. 어쩌면 아무것도 보낼 이유가 무엇입니까? –