2015-05-20 18 views
9

Tôi đang tìm kiếm một cách dễ dàng mà người dùng cuối có thể tạo "mã giả" về cách tạo chuỗi cuối cùng. Tôi nghĩ sẽ dễ dàng hơn nếu tôi đưa ra một ví dụ.Xây dựng textarea với các thẻ/biến

tôi có các biến sau:

  • Round
  • Game
  • Wins
  • Losses
  • Player
  • Opponent
  • Rating

Trong phần cuối của ứng dụng, tôi làm tất cả theo cách thủ công.

echo Player + " is currently playing " + Opponent + ". Round: " + Round + ", Game: " + Game; 
if (Wins > Losses) { 
    echo " (Up a Game)"; 
} else if (Wins < Losses) { 
    echo " (Down a game)"; 
} 

Điều tôi muốn làm cuối cùng là kiểm soát người dùng cuối về cách chuỗi này đang được hiển thị. Tôi muốn họ thêm các biến mà họ muốn, cũng như thêm các câu lệnh if/else.

Tôi nhìn một chút vào selectizeselect2, và họ dường như được đi đúng hướng của những gì tôi đang tìm kiếm, nhưng không thực sự chứa bất kỳ if/else chức năng tôi cần. Một cái gì đó tôi đã sử dụng trong quá khứ là Blockly mà không chứa nếu logic khác, nhưng điều này có thể là một chút phức tạp cho người dùng cuối. Có ai có bất kỳ khuyến nghị khác của javascript/jQuery plugins/script tôi có thể sử dụng để thực hiện điều này?

+0

Bạn có thể làm điều này thông qua một file php mà tìm kiếm và thay thế từ khóa với các giá trị bạn muốn. Để sử dụng, hãy thiết lập cuộc gọi ajax để thực hiện cuộc gọi đó! – user3633383

+0

Sau đó, chính xác những gì bạn đang tìm kiếm? Bạn đang tìm kiếm một plugin hiện có? Bạn có cần loại trình biên dịch không? – rst

+0

Blockly là một ví dụ về cái gì đó có thể là những gì tôi đang tìm kiếm. Không quá lo lắng về hậu cần biên dịch/nhận được nó vào chuỗi, nhiều hơn một cái nhìn tốt đẹp cho người dùng cuối để tạo ra các chuỗi. Nếu có một plugin hiện tại hoặc một plugin mà tôi có thể mở rộng chức năng quá dễ dàng, đó cũng là một thứ hữu ích. Bất kỳ liên kết đến trang web/plugins/ứng dụng, tất cả sẽ hữu ích. – FrankerZ

Trả lời

0

Giả sử bạn sử dụng php để tìm các từ khóa trong chuỗi và thay thế chúng bằng những thứ bạn thực sự muốn!

$s="Player is currently playing Opponent [ROUND], Game: Game"; 
$s = str_replace("[ROUND]", "Round: $Round", $s); 

Ví dụ tìm [ROUND] và thay thế bằng nội dung bạn muốn.

Sau đó, khi tải lại trang, hãy sử dụng ajax để gọi tệp php để thực hiện công việc cho bạn!

+0

Tôi đánh giá cao nỗ lực này, nhưng tôi không tìm giải pháp cuối để thay thế các biến. Tôi đang tìm một giao diện đẹp, nơi họ có thể "cắm và chạy" các biến vào hộp văn bản (Hoặc văn bản), và chuyển thông tin đó đến máy chủ. – FrankerZ

+0

@FrankerZ Bạn cần truyền nhật ký được hiển thị cho máy chủ hoặc mã giả mà người chơi nhập? –

+0

Tôi không tìm kiếm mã nào cả. Tôi đang tìm một giải pháp để tạo ra một số loại mã mà sau đó tôi sẽ chuyển đến phía máy chủ để tạo ra các chuỗi cần thiết cho đầu ra (Thay thế các biến, phân tích cú pháp if/else statements, etc ...). Ví dụ: [Markup.js] (https://github.com/adammark/Markup.js/) là một công cụ tuyệt vời mà tôi có thể sử dụng để sắp xếp thứ gì đó với nhau (tôi thậm chí có thể xây dựng phía máy chủ phân tích cú pháp), nó có khách hàng tạo mẫu theo cách dễ dàng thông qua GUI. GUI đó là những gì tôi đang tìm kiếm. – FrankerZ

1

Bạn vẫn có thể sử dụng chọn và thêm một số tính năng css đẹp. Ví dụ. bạn có thể sử dụng công cụ chọn giá trị dữ liệu

[data-value="if"] { 
    background-color: red; 
} 

để phân biệt nếu/else thẻ từ các thẻ khác. Tiếp theo, bạn có thể sử dụng liền kề selector anh chị em css (http://www.w3.org/TR/CSS2/selector.html#adjacent-selectors) để tìm thẻ tiếp theo sau khi một câu lệnh if để đánh dấu này là tốt

[data-value="if"] + div { 
    background-color: anything; 
} 

Hơn nữa bạn cũng có thể phân biệt các biến bằng cách sử dụng kỹ thuật tương tự. Sau đó, một trình phân tích cú pháp có thể phân tích các câu lệnh if/else bằng cách sử dụng regexp hoặc bất kỳ điều gì phù hợp với bạn nhất. sau đó

Ai đó có thể viết một cái gì đó giống như

[Player][" is currently playing "][Opponent][". Round: "][Round] 
[", Game: "][Game][if][Wins>Losses][" (Up a Game)"][else][" (Down a game)"] 

nơi dấu ngoặc chỉ ra "thẻ". Trình phân tích cú pháp của bạn sau đó sẽ đọc các thẻ có trích dẫn "" dưới dạng chuỗi.

0

Nếu bạn đang tìm kiếm phân tích văn bản phía khách hàng tùy chỉnh, có thể điều này sẽ giúp bạn.

var keywords = { 
 
    
 
    Round: 'red', 
 
    Game: 'green', 
 
    if: 'blue', 
 
    else: 'blue', 
 
    then: 'blue' 
 

 
} 
 

 
$('#input').keyup(function(){ 
 

 
    var parsedInputTags = $(this).val().split(/[\[\]]/); 
 
    
 
    $('#output').html(''); 
 
    
 
    parsedInputTags.forEach(function(text){ 
 
    
 
    if(text in keywords){ 
 
    
 
     $('#output').append('<span data-tag="' + text + '" class="tag-' + keywords[text] + '">' + text + '</span>'); 
 
    
 
    } 
 
    else $('#output').append('<span>' + text + '</span>'); 
 
    
 
    }); 
 

 
});
.tag-red { 
 
    color: red; 
 
} 
 

 
.tag-green { 
 
    color: green; 
 
} 
 

 
[data-tag="if"] + span { 
 
    color: cyan; 
 
} 
 

 
.tag-blue { 
 
    color: blue; 
 
} 
 

 
textarea { 
 
    width: 200px; 
 
    height: 200px; 
 
} 
 

 
#output { display: inline-block; vertical-align: top; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea id="input" placeholder="Type this: This is game [Game] in round [Round]. [if] something > smth [then] type this [else] type that"></textarea> 
 
<div id="output"></div>

Các vấn đề liên quan