2010-03-05 4 views
0

나는이 같은 라인이있는 경우,특정 영역에 텍스트를 추가하려면 어떻게해야합니까?

<option value="someval">somval</option> 

는 어떻게 값의 마지막 인용 한 후 커서를 놓고 abcdef 같은 것을 넣을 수 있습니다?

그래서 출력은 PHP

<option value="somval" abcdef>somval</option> 

것입니까?

나는 이것을 동적으로하고 싶다. 어떻게해야 할지를 알 수 없다. 나는 strpos()을보고 있는데, 어떻게 할 수 있는지 보지 못했다. 옵션 상자를 텍스트 상자에 게시하고 코드가 생성됩니다. 그래서 나는 많은 옵션 필드를 가질 것이다.

@martin - 거대한 드롭 다운 목록이 있고 각 옵션에 존재하는 국가가 나열되어 있다고 가정 해보십시오. 자동으로 많은 시간을 절약하기 위해 생성 위의 코드를

$query = $db->query("my query...."); 
while($row = $db->fetch($query)) { 

<select name="thename"> 
    <option value="someval" <?php if($row['someval'] == 'someval') { print "selected"; } ?> >someval</option> 
    <option value="someval" <?php if($row['someval'] == 'someval') { print "selected"; } ?> >someval</option> 
    <option value="someval" <?php if($row['someval'] == 'someval') { print "selected"; } ?> >someval</option> 
    ... Followed by 100 more, because there are a lot of locations to list. 
</select> 

어떻게 텍스트 상자에 내가 가지고있는 모든 옵션을 게시 할 수 있습니다 오히려 수동으로이 같은 뭔가를 입력하는 것보다?

+1

을 적용 할 보안에 대한 일반적인 부인은 당신이 더 많은 코드를 게시 할 수 있습니까? 이것을 동적으로 구축합니까? – Martijn

+0

PHP 편집기를 열고 할당량 옆에 커서를 놓고 "abcdef"를 입력하십시오. 어쩌면 질문을 수정하여 원하는 답을 얻을 수 있습니다. – Numenor

+0

나는 그것을 바꿔 말했습니다. – david

답변

0

(value=".+?")을 캡처하여 $0 abcdef으로 바꿀 수 있습니다. 다음과 같은 출력

<?php 

    $string = '<option value="someval">someval</option>'; 
    print preg_replace("/(value=\".+?\")/i", "$0 abcdef", $string); 

?> 

: PHP와

<option value="someval" abcdef>someval</option> 
0

, 당신은 당신이 원하는 텍스트로 전체 문자열을 생성 할 수 있습니다. 원래의 문자열은 어디에 있습니까? 변수 또는 텍스트 파일에서?

2

당신이 할 것입니다 귀하의 예제를 사용 :

while($row = $db->fetch($query)) { 
    printf('<option value="someval"%s>someval</option>', 
      ($row['someval'] == 'someval') ? ' selected="selected" ' : ''); 
} 

이 행과 출력 옵션을 통해 갈 것이다, 속성 selected="selected"$row['someval'] 경우로 %s 교체 someval- 동일 입니다. 모든 옵션 요소가 같은 값과 텍스트, 그래서 $selection 당신에 대해 비교하려는 것을하게하여

while($row = $db->fetch($query)) { 
    printf('<option value="%s"%s>%s</option>', 
      $row['country-code'], 
      ($row['country-code'] === $selection) ? ' selected="selected" ' : '', 
      row['country-name']); 
} 

을 다할 것입니다 때문에, 위는 오히려 무의미하다. $ row의 키를 데이터베이스의 해당 키로 대체하십시오.

참고 : 출력이

관련 문제