Prabakaran T Ответов: 2

в JavaScript: как изменить значение интервала к значению текстового поля, а после с помощью PHP


Привет.
Я работаю над проектом по математике., я mathquill использовать JS, чтобы получить ввод от пользователя, как забронировать сумм, но нет возможности размещать значения из промежутка, так что я хотел бы изменить значение из промежутка в скрытое текстовое поле с помощью JavaScript, но нет ничего, что пост от скрытого текстового поля, вот код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"



 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html>

<head >

    <title>Untitled Page</title>
<link href="mathquill.css" rel="stylesheet" />
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"



   

    <script>

       $(function(){

    $('#save').click(function () {

        var mysave = $('#spantxt').html();

        $('#hiddeninput').val(mysave);

    });

});

</script>

</head>
<body>

    <form action="math.php" method="post">
  <span id="spantxt" class="mathquill-editor"></span>
                     
<input type="hidden" id="hiddeninput" name="hiddeninput">
<input type="submit" id="save" name="save" value="Submit"/>

</form>

<script type="text/javascript" src="jquery.min.js"></script>
 <script type="text/javascript" src="mathquill.js"></script>
<script type="text/javascript">
    var LatexImages = false;
    $(function(){
        function printTree(html)
        {
            html = html.match(/<[a-z]+|<\/[a-z]+>|./ig);
            if(!html) return '';
            var indent = '\n', tree = '';
            while(html.length)
            {
                var token = html.shift();
                if(token.charAt(0) === '<')
                {
                    if(token.charAt(1) === '/')
                    {
                        indent = indent.slice(0,-2);
                        if(html[0] && html[0].slice(0,2) === '</')
                            token += indent.slice(0,-2);
                    }
                    else
                    {
                        tree += indent;
                        indent += '  ';
                    }
                    token = token.toLowerCase();
                }

                tree += token;
            }
            return tree.slice(1);
        }
        var editingSource = false, latexSource = $('#latex-source'), htmlSource = $('#html-source'), codecogs = $('#codecogs'), latexMath = $('#editable-math').bind('keydown keypress', function()
        {
            setTimeout(function() {
                htmlSource.text(printTree(latexMath.mathquill('html')));
                var latex = latexMath.mathquill('latex');
                if(!editingSource)
                    latexSource.val(latex);
                if(!LatexImages)
                    return;
                latex = encodeURIComponent(latexSource.val());
//            location.hash = '#'+latex; //extremely performance-crippling in Chrome for some reason
                codecogs.attr('src','http://latex.codecogs.com/gif.latex?'+latex).parent().attr('href','http://latex.codecogs.com/gif.latex?'+latex);
            });
        }).keydown().focus();
        if(location.hash && location.hash.length > 1)
            latexMath.mathquill('latex', decodeURIComponent(location.hash.slice(1))).focus();
        var textarea = latexSource.focus(function(){
            editingSource = true;
        }).blur(function(){
            editingSource = false;
        }).bind('keydown keypress', function()
        {
            var oldtext = textarea.val();
            setTimeout(function()
            {
                var newtext = textarea.val();
                if(newtext !== oldtext)
                    latexMath.mathquill('latex', newtext);
            });
        });
    });
</script>
</body>

</html>


<?php

if(isset($_POST['save'])){

    

    $temp = $_POST['hiddeninput'];

    echo $temp;

}


Заранее спасибо!

2 Ответов

Рейтинг:
6

Prabakaran T

Спасибо мистеру Ишприту Кауру за то, что он потратил ваше драгоценное время, чтобы ответить на этот вопрос...

Но у меня была другая идея, чтобы решить эту проблему.

Пожалуйста, пройдите через следующее.

<span id="editable-math" class="mathquill-editor" name="spanname" ng-model="mathditor"></span>
                     <input id="latex-source" type="hidden" name="outputBox" /><br/><br/>
                     <input type="submit" id="subclick" class="btn btn-success pull-right" name="sol" value="Submit" />
                    </form>


Просто дайте одно значение идентификатора скрытому текстовому полю, теперь все, что я набираю в span, выглядит как Textarea, которая также печатается в скрытом текстовом поле.!


Вот полный код:
br mode="hold" /> "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html ng-app="">


<head>

    <title>Untitled Page</title>
<link href="mathquill.css" rel="stylesheet" />
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">

   
    <script>
angular.module("unit5",[])
    .controller("sum1", function sum1(){

            var first = this;

        first.greeting = "This is my demo";

        var sec = this;

        sec.greeting = "This is my second demo";

    })
  
</script>

</script></head>
<body>

    <form action="math.php" method="post">
 
 <span id="editable-math" class="mathquill-editable">y=</span>
 <span id="editable-math" class="mathquill-editor" ng-model="mathditor"></span>

         
<input id="latex-source" name="chkd" ng-model="demo" placeholder="Your sum here!" />

<input type="submit" id="save" name="save" value="Submit" />
{{demo}}
</form>
<script type="text/javascript" src="angular.min.js"></script>

<script type="text/javascript" src="jquery.min.js"></script>
 <script type="text/javascript" src="mathquill.js"></script>
<script type="text/javascript">
    var LatexImages = false;
    $(function(){
        function printTree(html)
        {
            html = html.match(/<[a-z]+|<\/[a-z]+>|./ig);
            if(!html) return '';
            var indent = '\n', tree = '';
            while(html.length)
            {
                var token = html.shift();
                if(token.charAt(0) === '<')
                {
                    if(token.charAt(1) === '/')
                    {
                        indent = indent.slice(0,-2);
                        if(html[0] && html[0].slice(0,2) === '                           token += indent.slice(0,-2);
                    }
                    else
                    {
                        tree += indent;
                        indent += '  ';
                    }
                    token = token.toLowerCase();
                }

                tree += token;
            }
            return tree.slice(1);
        }
        var editingSource = false, latexSource = $('#latex-source'), htmlSource = $('#html-source'), codecogs = $('#codecogs'), latexMath = $('#editable-math').bind('keydown keypress', function()
        {
            setTimeout(function() {
                htmlSource.text(printTree(latexMath.mathquill('html')));
                var latex = latexMath.mathquill('latex');
                if(!editingSource)
                    latexSource.val(latex);
                if(!LatexImages)
                    return;
                latex = encodeURIComponent(latexSource.val());
//            location.hash = '#'+latex; //extremely performance-crippling in Chrome for some reason
                codecogs.attr('src','http://latex.codecogs.com/gif.latex?'+latex).parent().attr('href','http://latex.codecogs.com/gif.latex?'+latex);
            });
        }).keydown().focus();
        if(location.hash && location.hash.length > 1)
            latexMath.mathquill('latex', decodeURIComponent(location.hash.slice(1))).focus();
        var textarea = latexSource.focus(function(){
            editingSource = true;
        }).blur(function(){
            editingSource = false;
        }).bind('keydown keypress', function()
        {
            var oldtext = textarea.val();
            setTimeout(function()
            {
                var newtext = textarea.val();
                if(newtext !== oldtext)
                    latexMath.mathquill('latex', newtext);
            });
        });
    });
</script>
</body>

</html>



if(isset($_POST['save'])){

    
    $temp = $_POST['chkd'];

    echo $temp;

}


Рейтинг:
2

Ishpreet Kaur

Вы должны передать значение из spantext в hiddentext, прежде чем нажать кнопку отправки. Когда вы нажимаете на кнопку отправить, в течение этого времени скрытое входное значение равно нулю.
Таким образом, вы должны предоставить значение hiddentext перед нажатием кнопки. Для этого вы можете использовать наведение курсора мыши событие на кнопке. И измените свой сценарий как:

<script>
$(document).ready(function(){
$("#save").mouseover(function(){
	var mysave = $('#spantxt').html();
    $("#hiddeninput").val(mysave);
    });
});
</script>



Таким образом, скрытое значение получит значение, как только ваша мышь окажется над кнопкой отправки.