2016-07-05 7 views
-2

私はAjax、Jquery、Javascriptをループに実装するのに多くの問題があります。 現在、私はdo-whileループ内のすべてのレコードに対して繰り返し使用する「バー評価システム」を持っています。しかし、私が理解できないことは間違っています。do-whileループのJquery bar ratingシステム

怒鳴る問題に関連コードの一部:bodyタグが終わる前に

<?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ロジックを使用しました。 – malmonacid001

+0

フォームのアクション属性が設定されていないようですが、何も送信されない理由は何ですか? –

関連する問題